Comment mon code node.js peut-il savoir s’il fonctionne sous les versions officielles de nodejs, iojs, jxcore ou node-chakracore?

Il existe maintenant plusieurs forks de nodejs pour différentes raisons.

Pour que mon code de nœud puisse voir sur quel fork il tourne, quel est actuellement le meilleur moyen?

Les fourches que je connais sont:

  • La version officielle de nodejs
  • iojs – Je suppose que c’est maintenant obsolète car il a rejoint le noeud officiel, mais c’est toujours intéressant
  • JXcore – un fork qui supporte plusieurs processeurs / cœurs; plusieurs moteurs JS, y compris V8, SpiderMonkey de Mozilla et ChakraCore de Microsoft; et l’emballage des applications js, de sorte que npm n’a pas besoin d’être utilisé par les utilisateurs des applications
  • La twig Microsoft de nodejs utilisant le moteur ChakraCore JS de son navigateur Edge via un module compatible V8

( J’ai également posé une question complémentaire sur la détection du moteur JS utilisé. Cette question concerne uniquement la détection de la fourche utilisée.)

NodeJS et iojs peuvent probablement être vérifiés par process.release :

name: une chaîne avec une valeur qui sera toujours ‘node’ pour Node.js. Pour les versions antérieures de io.js, il s’agira de «io.js».

En ce qui concerne JXcore, vous pouvez utiliser process.jxversion ou typeof jxcore !== 'undefined'