我已经思考了一段时间这个问题,但似乎无法找到答案。Node.js和V8之间有什么关系?Node.js能否在没有V8的情况下工作?
Node.js和V8之间有什么关系?
V8是node.js内部的Javascript引擎,负责解析和运行你的Javascript代码。同样的,V8引擎也被用于Chrome浏览器中运行Javascript。Google开源了V8引擎,node.js的开发者们利用它来在node.js中运行Javascript。
没有V8时Node.js能否工作?
不能。当前的node.js二进制文件不能在没有V8的情况下工作。因为没有Javascript引擎,所以它无法运行代码,显然会变得不可用。Node.js并不设计用于与其他Javascript引擎一起运行,事实上,所有与node.js捆绑的本地代码绑定(例如fs模块或net模块)都依赖于C ++和Javascript之间的特定V8接口。
微软正在努力允许使用Chakra Javascript引擎(Edge浏览器中的引擎)与node.js一起工作。他们在Chakra之上构建了一个V8桥接层,以便原本期望与V8通信的node.js二进制代码可以继续做它所做的事,并最终与底层的Chakra引擎进行通信。据我所知,这个工作特别针对已经具备Chakra引擎却没有运行V8引擎的微软平台,尽管它也可以在Windows上使用。
通过使用node-chakracore项目,Node.js实际上可以在某种程度上不依赖V8运行。目前正在进行工作,以减少V8和Node之间的紧密耦合,以便可以使用不同的JavaScript引擎。
V8是一个JavaScript引擎。JavaScript引擎用于将JavaScript代码解释成机器码。有不同的JavaScript引擎,例如:Chrome的V8、IE的Chakra、Netscape的SpiderMonkey等。
V8是一个浏览器引擎,而Node.js是建立在V8之上的运行时环境,它使得JavaScript可以在服务器端运行。
是的,但我从未使用过其他JavaScript引擎来运行Node.js。