我可以推断出node.js或io.js是否正在运行的唯一方法是检查process.versions.node.在io.js中,我得到1.0.4.
@H_502_2@我相信有更好的方法 – 有人知道吗?
解决方法
现在最可靠的解决方案是执行节点-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)); }); }@H_502_2@这种方法的大减 – 它是异步的.所以我写了一个简化工作的小型库:is-iojs. @H_502_2@但坦率地说:谁知道节点版本1何时发布,可能永远不会.所以我认为现在仅基于process.version的决定就足够了:
var isIojs = parseInt(process.version.match(/^v(\d+)\./)[1]) >= 1;@H_502_2@你也可以检查process.execPath字符串,但据我所知,这种方法不适用于windows.