我可以判断node.js或io.js是否正在运行的唯一方法是检查process.versions.node
。在io.js中,我得到1.0.4。
我确定有更好的方式 - 有人知道吗?
答案 0 :(得分:3)
现在最可靠的解决方案是执行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
字符串,但据我所知,这种方法不适用于Windows。