Теперь самое надежное решение для exec node -h
и посмотреть, содержит ли оно iojs.org
подстроку. Если он делает - это iojs
:
function isIojs(callback) {
require('child_process').exec(process.execPath + ' -h', function(err, help) {
return err ? callback(err) : callback(null, /iojs\.org/.test(help));
});
}
Большой минус такого подхода - это асинхронный. Поэтому я написал небольшую библиотеку, которая упрощает работу: is-iojs.
Но, честно говоря, кто знает, когда будет выпущена версия узла 1, возможно, никогда. Так что я думаю, что для определения теперь только на основании process.version
достаточно:
var isIojs = parseInt(process.version.match(/^v(\d+)\./)[1]) >= 1;
Также вы можете проверить process.execPath
строки, но этот подход не работает для окон, насколько я знаю.
Я только что нашел этот вопрос, но несколько дней назад я спросил что-то подобное, но [обнаружил между nodejs, iojs, jxcore и Microsoft fork узла с движком jc ChakraCore] (http://stackoverflow.com/ вопросы/35037072). – hippietrail