Node.js和V8之间有什么关系?

Cha*_*ito 31 v8 node.js

我一直在考虑这个问题,似乎无法找到答案.Node.js和V8之间有什么关系?并且Node.js可以在没有V8的情况下工作吗?

jfr*_*d00 36

Node.js和V8之间有什么关系?

V8是node.js中的Javascript引擎,用于解析和运行您的Javascript.Chrome内部使用相同的V8引擎在Chrome浏览器中运行javascript.Google开源了V8引擎,node.js的构建者使用它在node.js中运行Javascript.

Node.js可以在没有V8的情况下工作吗?

不.没有V8,当前的node.js二进制文件无法工作.它没有Javascript引擎,因此无法运行显然使其无法运行的代码.Node.js不能与任何其他Javascript引擎一起运行,事实上,node.js附带的所有本机代码绑定(例如fs模块或网络模块)都依赖于C++和C++之间的特定V8接口.的JavaScript.

Microsoft努力允许Chakra Javascript引擎(Edge中的引擎)与node.js一起使用.他们在Chakra上构建一个V8垫片,以便期望与V8交谈的node.js二进制代码可以继续执行它正在做的事情,但实际上最终会与下面的Chakra引擎交谈.从我所看到的,这特别针对已经拥有Chakra引擎并且没有运行V8引擎的微软平台,尽管可能你也可以在Windows上使用它.

  • 您可以在不使用V8的情况下运行Node,其中有Node Chakra Core版本。还有一个N-API即将在Node中登陆,这使您可以使用想要在Node中使用的任何JS引擎。 (3认同)
  • @MinhNghĩa - V8 只是一个 Javascript 引擎。它没有与外界沟通的能力。没有网络环、没有文件系统、没有安全功能等等……因此,nodejs 添加了一个大型运行时库,使 V8 对于解决现实世界的问题很有用。你可以认为nodejs向Javascript添加了一个标准库,就像你有一个Java或C++标准库一样(除了Javascript,该库不是语言标准的一部分,而是环境添加的东西 - 无论环境是浏览器或者是nodejs)。 (2认同)

Sup*_*fly 5

通过使用node-chakracore项目,Node.js 实际上可以在没有 V8 的情况下在某种程度上发挥作用。目前正在努力减少 V8 和 Node 之间的紧密耦合,以便可以就地使用不同的 JavaScript 引擎。

  • 或者使用 Spidernode,它是 SpiderMonkey 之上的 node.js。 (2认同)