Node.js和V8有什么关系?

我一直在想这个问题一段时间,似乎无法find答案。 Node.js和V8有什么关系? 和Node.js可以在没有V8的情况下工作吗?

Node.js和V8有什么关系?

V8是parsing和运行Javascript的node.js里面的Javascript引擎。 Chrome内部使用相同的V8引擎,以在Chrome浏览器中运行JavaScript。 Google开源了V8引擎,并且node.js的构build者使用它来在node.js中运行Javascript。

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

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

微软公司正在努力使Chakra Javascript引擎(这是Edge的引擎)与node.js一起使用。 他们在Chakra之上构build了一个V8垫片,以便与V8交谈的node.js二进制代码可以继续做它所做的事情,但实际上最终会与Chakra引擎进行对话。 从我读到的这个特别针对已经拥有Chakra引擎的微软平台,没有运行V8引擎,尽pipe大概你也可以在Windows上使用它。

通过使用node-chakracore项目,Node.js实际上可以在没有V8的情况下运行 。 目前正在努力减lessV8和Node之间的紧密耦合,以便不同的JavaScript引擎可以在原地使用。