2017-03-06 67 views

回答

8

Node.js和V8之間有什麼關係?

V8是解析和運行Javascript的node.js中的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++和特定的V8接口的JavaScript。

Microsoft正在努力讓Chakra Javascript引擎(即Edge中的引擎)與node.js一起使用。他們在Chakra之上構建了一個V8墊片,以便與V8交談的node.js二進制代碼可以繼續做它正在做的事情,但實際上最終會與底下的Chakra引擎交談。從我讀過的內容來看,這特別針對那些已經擁有Chakra引擎並且沒有運行V8引擎的微軟平臺,不過據推測你也可以在Windows上使用它。

+1

您可以運行沒有V8的節點,有一個節點Chakra核心版本。還有一個即將登陸Node的N-API,這允許你在Node中使用你想要的任何JS引擎。 – user835611

+1

@ user835611 - 我已更新我的答案以反映關於Chakra的信息。 – jfriend00

3

通過使用node-chakracore項目,Node.js實際上可以在沒有V8的情況下運行。目前正在努力減少V8和Node之間的緊密耦合,以便不同的JavaScript引擎可以在原地使用。

+0

或者使用SpiderMonkey上的spidernode,它是node.js。 – jmdeamer