是否有可靠的方法来检测 io.js 或 node.js 是否为 运行?
Is there a reliable way of detecting whether io.js or node.js is running?
我可以推断 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。
我可以推断 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。