有没有可靠的方法来检测io.js或node.js是否在运行?
我能够推断出node.js或io.js是否运行的唯一方法是检查process.versions.node
。 在io.js中,我得到1.0.4。
我确定有更好的方法 - 有人知道吗?
现在最可靠的解决方案是执行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。
上一篇: Is there a reliable way of detecting whether io.js or node.js is running?