【问题标题】:How can my node.js code see if it's running under official nodejs, iojs, jxcore, or node-chakracore?我的 node.js 代码如何查看它是否在官方 nodejs、iojs、jxcore 或 node-chakracore 下运行?
【发布时间】:2016-05-04 09:17:55
【问题描述】:

由于各种原因,现在有几个 nodejs 的分支。

让我的节点代码查看它在哪个分叉下运行,目前最好的方法是什么?

我知道的分叉是:

  • nodejs 官方发布
  • iojs - 我想它现在已经被弃用了,因为它重新加入了官方的 nodejs,但它仍然很有趣
  • JXcore - 一个支持多个 CPU/内核的分支;多个 JS 引擎,包括 V8、Mozilla 的 SpiderMonkey 和微软的 ChakraCore;和 js 应用程序的打包,因此应用程序的用户不需要使用 npm
  • Microsoft 的 nodejs 分支通过 V8 兼容性 shim 使用其 Edge 浏览器的 ChakraCore JS 引擎

(I've also asked a companion question about detecting which JS engine is being used.这个问题只是关于检测正在使用哪个fork。)

【问题讨论】:

标签: node.js jxcore chakra iojs chakracore


【解决方案1】:

NodeJS 和 iojs 大概可以通过process.release 来检查:

name:一个字符串,其值对于 Node.js 将始终为“节点”。对于旧版 io.js 版本,这将是“io.js”。

对于 JXcore,您可以使用 process.jxversiontypeof jxcore !== 'undefined'

【讨论】:

  • 是的,我无法安装 io.js,因为在项目重新合并后我有一个 node.js。在 JXcore 中,process.release 是一个无法调用的函数。 NodeJS 的 MS 端口在 process.release.name 也有“节点”,但还有其他一些区别。
  • 是的,JXcore 中的 process.release 目前与 NodeJS 中的不同,因为它在 NodeJS 拥有它之前就被添加到了 JXcore 中(因此带来了名称收敛 github.com/jxcore/jxcore/issues/790
猜你喜欢
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 2018-08-28
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 2014-09-21
相关资源
最近更新 更多