2016-01-27 2 views
5

Теперь есть несколько вилок nodejs, а некоторые из них поддерживают движки JavaScript, отличные от движка V8 от Google.Как обнаружить из nodejs, на котором работает JavaScript-движок?

Для моего кода узла, чтобы увидеть, какой JS-движок работает под ним, что в настоящее время лучший способ?

Двигатели Я в курсе являются:

  • компании Google V8 - единственный двигатель поддерживается официальным node.js и iojs вилки. Один из двигателей, поддерживаемый JXcore.
  • Mozilla's SpiderMonkey - Один из двигателей, поддерживаемый JXcore.
  • от Microsoft ChakraCore - двигатель поддерживается порт Microsoft «s из Node.js и по-видимому один из двигателей, поддерживаемых JXcore хотя я не получил, что один работать еще.

(I've asked a separate question about detecting which fork of nodejs is being used. Этот вопрос только об обнаружении двигателя JS.)

ответ

7

Объект process содержит много информации о процессе в настоящее время работает (в данном случае, узел).

Мои process.versions, например, содержит текущую версию V8:

process: { 
    versions: { 
     http_parser: '2.5.0', 
     node: '4.2.4', 
     v8: '4.5.103.35', 
     uv: '1.7.5', 
     zlib: '1.2.8', 
     ares: '1.10.1-DEV', 
     icu: '56.1', 
     modules: '46', 
     openssl: '1.0.2e' 
    } 
} 

Вы должны быть в состоянии запросить этот объект и определить текущий двигатель.

+0

Поля в объектах 'process' и' versions' на самом деле имеют разные поля между портами nodejs. Я хочу документировать различия в ответе, но до сих пор я не могу сравнивать nodejs MS с ChakraCore против JXcore с Chakra, поскольку я не могу узнать [как использовать последний в Windows 7] (http://stackoverflow.com/вопросы/35055401). – hippietrail

+2

JXcore также сохраняет номера версии двигателя в 'process.versions'. В настоящее время это либо 'v8',' sm' (SpiderMonkey), либо 'ch' (Chakra). – infografnet

Смежные вопросы