Как проверить, какая версия v8 установлена ​​с моим NodeJS?


143

Как V8 устанавливается вместе с NodeJs? Какая версия моего текущего двигателя V8?

Ответы:


120

Простой способ:
введите в командной строке:node -p process.versions.v8

Способ трудолюбия:

  1. Введите, node --versionчтобы получить версию Node.js.

  2. Перейти к Node.js списком изменений .

  3. Найдите и откройте соответствующий журнал изменений версии Node.js.

  4. Ищите заметки, содержащие V8 to.


101
или вы можете просто спросить узел, какая версия установлена ​​через process.versions. Немного проще, чем искать в журнале изменений. node -e 'console.log(process.versions.v8);'
Бен Табер

когда я набираю «node --version», я не получаю сообщения об ошибке, но и не получаю никакой информации ... просто снова показывает подсказку. Есть идеи, почему?
geoidesic

Ссылка больше не обновляется, и, как много лет назад указал Бен Табер, к счастью, есть гораздо более прямой и понятный способ .
TJ Crowder

290

Однострочное решение:
node -p process.versions.v8

Альтернативное решение:
node -e "console.log(process.versions.v8)"


2
Согласовано. Это также единственный ответ, который работает в Windows. Все ответы, содержащие одинарные цитаты, ничего странного не делают ...
Marc

37
node -p process.versions.v8немного короче. Не то чтобы это имело значение, но, может быть, кого-то это волнует.
slikts 02

62

Просто беги 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' }

1
Лучший ответ, который нужно знать. Кроме того, интерфейс командной строки NPM - это чушь - если вы добавите в него аргумент, он увеличит версию в вашем файле package.json, сделает и пометит git commit. Совершенно странный UX, но это полезно.
mitchell_st

ваш лучший ответ этого вопроса ... К сожалению , я могу только голосовать один раз .. Спасибо
Дакш

31

Чтобы проверить свою версию, проверьте значение в process.versionsREPL.

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

1
+1, node -e console.log(process.versions.v8)хотя пришлось использовать ; иначе ничего не выводилось.
pimvdb

Похоже, что в какой-то момент это изменилось в узле, спасибо за подсказку. Отредактировал ответ, чтобы отразить это.
Бен Табер


9

Просто для удовольствия, если в вашем терминале есть 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

:)


4
Интересно, как определение веселья может варьироваться от человека к человеку :)
Арно Лейдер

9

найдите установленную версию v8 с узлом.

$ node
> process.versions.v8
'5.1.281.83'
>

где Объект процесса - это глобальный объект, который предоставляет информацию о текущем процессе Node.js. и контролирует его.

если вы просто наберете процесс в узле repl, вы увидите информацию об узле (например, версию узла, версию v8, платформу, информацию о переменных env и т. д.)


9

Если вы используете Node.js версии 7.7.3 или аналогичный, команда

$ node -p "process.versions"

Но и те, что указаны выше, тоже работают нормально.


8
node -pe 'this.process.versions'     # all versions
node -pe 'this.process.versions.v8'  # v8 version

2
В хорошем ответе всегда будет объяснение того, что делается и почему это было сделано именно так, не только для OP, но и для будущих посетителей SO.
Джей Бланшар,

Голосование против, потому что оно не добавляет ничего важного к самому популярному ответу на этот вопрос, который был опубликован 3 года назад.
Ярослав Админ

4
Как это не добавляет ничего важного? Он добавляет правильный, предложенный узлом способ узнать, какая версия используется. nodejs.org/en/docs/es6/…
Philiiiiiipp

4

Другие ответы отлично подходят для проверки вашей текущей версии. Здесь также есть таблица со всеми версиями 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

0

Вы также можете проверить любую версию nodejs v8 с помощью docker, например node 10.7.0: docker run --rm -it node:10.7.0 bash -c "node -p process.versions"


0

v8 идет в комплекте с Node.js. Вы можете узнать, какую версию v8 использует любая версия Node.js и когда она была запущена в производство, просмотрев v8 ChangeLogиз nodeрепозитория. Это текущий мастер (при сборке из исходного кода): https://github.com/nodejs/node/commit/master/deps/v8/ChangeLog

Чтобы просмотреть определенную версию Node.js, переключите ветку на эту версию и проверьте ChangeLogисторию файлов s.

История изменений Node.js

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.