如何检查NodeJS装有哪个版本的v8?


140

V8如何与NodeJ一起安装?我当前的V8引擎是哪个版本?

Answers:


119

简单方法:
在命令行中输入:node -p process.versions.v8

努力的方式:

  1. 键入node --version以获取Node.js版本。

  2. 转到Node.js Changelogs

  3. 查找并打开适当的Node.js版本更改日志。

  4. 查找包含的注释V8 to


100
或者,您可以通过process.versions询问节点安装了哪个版本。比在变更日志中搜寻要容易一些。 node -e 'console.log(process.versions.v8);'
Ben Taber 2012年

当我输入“ node --version”时,我没有得到任何错误,但是我也没有得到任何信息...只是再次显示了提示。知道为什么吗?
geoidesic '16

该链接不再更新,正如本·塔伯(Ben Taber)几年前指出的那样,幸运的是有一种更直接,更直接的方法
TJ Crowder

290

一线解决方案:
node -p process.versions.v8

替代解决方案:
node -e "console.log(process.versions.v8)"


2
同意 这也是在Windows中有效的唯一答案。所有单引号答案都没有做任何奇怪的事情……
Marc

37
node -p process.versions.v8有点短。没关系,但也许有人在乎。
2015年

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的CLI实在是太过分了-如果在其中添加参数,它将增加package.json文件中的版本,进行并标记git commit。怪异的UX,但这很有用。
mitchell_st

您的问题是这个问题的最好答案...不幸的是,我只能投票一次。.谢谢
Daksh

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

看起来在节点上的某个时刻有所改变,谢谢。编辑了回应以反映这一点。
Ben Taber 2012年


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

:)


3
有趣的是,有趣的定义如何因人而异:)
Arnaud Leyder 2015年

9

找到带有节点的已安装v8版本。

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

其中,流程对象是全局对象,可提供有关当前Node.js流程的信息并对其进行控制。

如果仅在节点repl中键入process,则会看到有关节点的信息(即节点版本,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年前发布的这个问题中被投票最多的答案没有任何重要的意义。
Yaroslav Admin

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

您还可以使用docker检查任何nodejs v8版本,例如node 10.7.0 docker run --rm -it node:10.7.0 bash -c "node -p process.versions"


0

v8与Node.js捆绑在一起。您可以通过ChangeLognode存储库中查看v8 来查看任何版本的Node.js所使用的v8版本以及何时将其投入生产。这是当前的主服务器(如果从源构建):https : //github.com/nodejs/node/commits/master/deps/v8/ChangeLog

要查看特定版本的Node.js,请将分支切换到该版本并检查ChangeLogs文件的历史记录。

Node.js更改日志历史记录

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.