2016-01-27 3 views
5

Es gibt jetzt mehrere Gabeln von Nodejs und einige von ihnen unterstützen andere JavaScript-Engines als Googles V8-Engine.Wie erkennt man von Nodejs, auf welcher JavaScript-Engine es läuft?

Für meinen Node-Code zu sehen, welche JS-Engine es unter läuft, was ist derzeit der beste Weg?

Die Motoren ich weiß, sind:

  • Google V8 - Der einzige Motor von den offiziellen node.js unterstützt und die iojs Gabel. Eine der von JXcore unterstützten Motoren.
  • Mozillas SpiderMonkey - Einer der von JXcore unterstützten Motoren.
  • Microsoft ChakraCore - Der Motor unterstützt von Microsoft ‚s Hafen von node.js und offenbar einer der von unterstützt Motoren JXcore obwohl ich nicht, dass man bekam haben noch zu arbeiten.

(I've asked a separate question about detecting which fork of nodejs is being used. Diese Frage ist nur über die JS Maschine erfaßt.)

Antwort

7

Das process Objekt eine Vielzahl von Informationen über den laufenden Prozess enthält (in diesem Fall Knoten).

Meine process.versions zum Beispiel enthält die aktuelle Version der 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' 
    } 
} 

Sie sollen dieses Objekt abfragen können, und den aktuellen Motor zu bestimmen.

+0

Die Felder in den 'process'- und' versions'-Objekten haben tatsächlich Felder, die sich zwischen den nodejs-Ports unterscheiden. Ich möchte die Unterschiede in einer Antwort dokumentieren, aber bisher kann ich die Nodejs von MS mit ChakraCore nicht mit JXcore mit Chakra vergleichen, da ich nicht herausfinden kann, wie man Letzteres unter Windows 7 benutzt (http://stackoverflow.com)/Fragen/35055401). – hippietrail

+2

JXcore speichert auch die Versionsnummern der Maschinen in 'process.versions'. Momentan ist dies entweder 'v8',' sm' (SpiderMonkey) oder 'ch' (Chakra). – infografnet

Verwandte Themen