2017-03-06 5 views

답변

8

Node.js와 V8의 관계는 무엇입니까?

V8은 Javascript를 구문 분석하고 실행하는 node.js의 Javascript 엔진입니다. 동일한 V8 엔진이 Chrome 브라우저에서 javascript를 실행하기 위해 Chrome 내부에서 사용됩니다. Google은 V8 엔진을 공개했으며 node.js의 빌더는 node.js에서 Javascript를 실행하는 데 사용했습니다.

V8없이 Node.js를 사용할 수 있습니까?

아니요. 현재 node.js 바이너리는 V8 없이는 작동하지 않습니다. Javascript 엔진이 없으므로 코드를 실행할 능력이 없어서 분명히 비 기능적이게됩니다. Node.js는 다른 Javascript 엔진과 함께 실행되도록 설계되지 않았고 실제로 node.js와 함께 제공되는 모든 원시 코드 바인딩 (예 : fs 모듈 또는 net 모듈)은 모두 C++과 C# 사이의 특정 V8 인터페이스에 의존합니다 자바 스크립트.

Chakra Javascript 엔진 (Edge의 엔진)을 node.js와 함께 사용할 수 있도록하는 Microsoft의 노력이 있습니다. 그들은 Chakra 위에 V8 shim을 만들어 V8과 통신 할 것으로 예상되는 node.js 바이너리 코드가 계속해서 그 일을 할 수는 있지만 실제로 Chakra 엔진과 이야기를 마무리합니다. 내가 읽은 것에서는 차크라 엔진이 있고 V8 엔진이 탑재되어 있지 않은 Microsoft 플랫폼을 대상으로 합니다만 Windows에서도이 엔진을 사용할 수있을 것입니다.

+1

V8없이 노드를 실행할 수 있습니다. 노드 차크라 코어 버전이 있습니다. 노드에 곧 착륙 할 N-API가 있습니다. 그러면 노드에서 원하는 JS 엔진을 사용할 수 있습니다. – user835611

+1

@ user835611 - 차크라에 대한 정보를 반영하도록 내 답변을 업데이트했습니다. – jfriend00

3

Node.js는 node-chakracore 프로젝트를 사용하여 V8없이 어느 정도 기능을 수행 할 수 있습니다. V8과 Node 간의 긴밀한 결합을 줄이기위한 지속적인 연구가 진행 중이므로 다른 JavaScript 엔진을 제자리에서 사용할 수 있습니다.

+0

또는 SpiderMonkey 위에 node.js 인 spidernode를 사용하십시오. – jmdeamer