Как V8 устанавливается вместе с NodeJs? Какая версия моего текущего двигателя V8?
Ответы:
Простой способ:
введите в командной строке:node -p process.versions.v8
Способ трудолюбия:
Введите, node --version
чтобы получить версию Node.js.
Перейти к Node.js списком изменений .
Найдите и откройте соответствующий журнал изменений версии Node.js.
Ищите заметки, содержащие V8 to
.
Однострочное решение:
node -p process.versions.v8
Альтернативное решение:
node -e "console.log(process.versions.v8)"
node -p process.versions.v8
немного короче. Не то чтобы это имело значение, но, может быть, кого-то это волнует.
Просто беги npm version
(не знаю, с каких пор это доступно)
> npm version
{ http_parser: '1.0',
node: '0.10.35',
v8: '3.14.5.9',
ares: '1.9.0-DEV',
uv: '0.10.30',
zlib: '1.2.8',
modules: '11',
openssl: '1.0.1j',
npm: '1.4.28',
xsjs: '0.1.5' }
Чтобы проверить свою версию, проверьте значение в process.versions
REPL.
node -e "console.log(process.versions.v8);"
Кроме того, при желании вы можете скомпилировать узел с другими версиями V8. Очевидно, здесь результаты могут сильно отличаться в зависимости от того, какие версии вы выберете.
cd node-v0.x.x
rm -rf deps/v8
git clone http://github.com/v8/v8.git deps/v8
./configure
make
make install
node -e console.log(process.versions.v8)
хотя пришлось использовать ; иначе ничего не выводилось.
Просто для удовольствия, если в вашем терминале есть curl, следующая версия должна дать вам версию v8:
V=`cat /usr/include/node/node_version.h | grep -E '^\#define NODE_(MAJOR|MINOR|PATCH)_VERSION' | sed -e 's/^[^0-9]*//'`; V=`echo $V | sed -e 's/ /\./g'`; URL=https://github.com/joyent/node/raw/v$V/ChangeLog; curl --silent $URL | grep 'Upgrade v8' | head -1 | sed -e 's/^.* //'; unset V; unset URL
Например, в моем ящике с node.js 0.4.7 я получаю:
3.1.8.10
:)
найдите установленную версию v8 с узлом.
$ node
> process.versions.v8
'5.1.281.83'
>
где Объект процесса - это глобальный объект, который предоставляет информацию о текущем процессе Node.js. и контролирует его.
если вы просто наберете процесс в узле repl, вы увидите информацию об узле (например, версию узла, версию v8, платформу, информацию о переменных env и т. д.)
Если вы используете Node.js версии 7.7.3 или аналогичный, команда
$ node -p "process.versions"
Но и те, что указаны выше, тоже работают нормально.
node -pe 'this.process.versions' # all versions
node -pe 'this.process.versions.v8' # v8 version
Другие ответы отлично подходят для проверки вашей текущей версии. Здесь также есть таблица со всеми версиями Node.js: https://nodejs.org/en/download/releases/ . Отрывок, например:
Version Date V8 npm NODE_MODULE_VERSION
Node.js 11.0.0 2018-10-23 7.0.276.28 6.4.1 67
Node.js 10.13.0 2018-10-30 6.8.275.32 6.4.1 64
Node.js 10.12.0 2018-10-10 6.8.275.32 6.4.1 64
Вы также можете проверить любую версию nodejs v8 с помощью docker, например node 10.7.0
:
docker run --rm -it node:10.7.0 bash -c "node -p process.versions"
v8 идет в комплекте с Node.js. Вы можете узнать, какую версию v8 использует любая версия Node.js и когда она была запущена в производство, просмотрев v8 ChangeLog
из node
репозитория. Это текущий мастер (при сборке из исходного кода):
https://github.com/nodejs/node/commit/master/deps/v8/ChangeLog
Чтобы просмотреть определенную версию Node.js, переключите ветку на эту версию и проверьте ChangeLog
историю файлов s.
node -e 'console.log(process.versions.v8);'