我一直在考虑这个问题,似乎无法找到答案.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上使用它.
通过使用node-chakracore项目,Node.js 实际上可以在没有 V8 的情况下在某种程度上发挥作用。目前正在努力减少 V8 和 Node 之间的紧密耦合,以便可以就地使用不同的 JavaScript 引擎。