如何检查我的 NodeJS 安装了哪个版本的 v8?

如何与 NodeJs 一起安装 V8? 我当前的 V8引擎是什么版本?

96305 次浏览

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

艰难的道路:

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

  2. Node.js Changelogs

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

  4. 查找包含 V8 to的笔记。

只是为了好玩,如果您的终端中有 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

:)

要检查您的版本,请在 REPL 中检查 process.versions中的值。

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 -p process.versions.v8

替代方案:
node -e "console.log(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' }
node -pe 'this.process.versions'     # all versions
node -pe 'this.process.versions.v8'  # v8 version

你只需要输入:

node -p process.versions.v8

使用节点查找已安装的 v8版本。

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

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

如果您只是在节点 repl 中键入 process,您将看到有关节点的信息(即节点版本、 v8版本、平台、 env 变量 info 等)

如果您使用的是 Node.js 版本7.7.3或类似版本,那么命令是

$ node -p "process.versions"

但是上面那些也很好用。

您还可以使用 docker 检查任何 nodejs v8版本,如 node 10.7.0: Docker run —— rm-it node: 10.7.0 bash-c“ node-p process.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

V8与 Node.js 绑定在一起。通过从 node存储库查看 v8 ChangeLog,您可以看到任何版本的 Node.js 正在使用的 v8版本以及它进入生产环境的时间。这是当前的 master (如果从源代码构建) : Https://github.com/nodejs/node/commits/master/deps/v8/changelog

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

Node.js change log history

更新:

C:\Users\Liu.D.H>C:\Users\Liu.D.H\AppData\Roaming\nvm\v16.14.2\node -p process.versions
{
node: '16.14.2',
v8: '9.4.146.24-node.20',
uv: '1.43.0',
zlib: '1.2.11',
brotli: '1.0.9',
ares: '1.18.1',
modules: '93',
nghttp2: '1.45.1',
napi: '8',
llhttp: '6.0.4',
openssl: '1.1.1n+quic',
cldr: '40.0',
icu: '70.1',
tz: '2021a3',
unicode: '14.0',
ngtcp2: '0.1.0-DEV',
nghttp3: '0.1.0-DEV'
}


C:\Users\Liu.D.H>nvm use 18.0.0
Now using node v18.0.0 (64-bit)


C:\Users\Liu.D.H>node -p process.versions
{
node: '18.0.0',
v8: '10.1.124.8-node.13',
uv: '1.43.0',
zlib: '1.2.11',
brotli: '1.0.9',
ares: '1.18.1',
modules: '108',
nghttp2: '1.47.0',
napi: '8',
llhttp: '6.0.4',
openssl: '3.0.2+quic',
cldr: '41.0',
icu: '71.1',
tz: '2022a',
unicode: '14.0',
ngtcp2: '0.1.0-DEV',
nghttp3: '0.1.0-DEV'
}


C:\Users\Liu.D.H>