如何从nodejs检测它运行的JavaScript引擎?

hip*_*ail 5 spidermonkey javascript-engine node.js chakra jxcore

现在有几个nodejs的分支,其中一些支持除Google的V8引擎之外的JavaScript引擎.

为了让我的节点代码能够看到它正在运行的JS引擎,目前最好的方法是什么?

我所知道的引擎是:

  • Google的V8 - 官方node.jsiojs fork 支持的唯一引擎.JXcore支持的引擎之一.
  • Mozilla的SpiderMonkey - JXcore支持的引擎之一.
  • 微软的ChakraCore - 由微软的node.js端口支持的引擎,显然是JXcore支持的引擎之一,虽然我还没有工作.

(我已经问了一个关于检测正在使用哪个nodejs的单独问题.这个问题只是关于检测JS引擎.)

dun*_*all 7

process对象包含有关当前正在运行的进程(在本例中为节点)的大量信息.

process.versions的例如,包含当前版本的V8:

process: {
    versions: {
        http_parser: '2.5.0',
        node: '4.2.4',
        v8: '4.5.103.35',
        uv: '1.7.5',
        zlib: '1.2.8',
        ares: '1.10.1-DEV',
        icu: '56.1',
        modules: '46',
        openssl: '1.0.2e'
    }
}
Run Code Online (Sandbox Code Playgroud)

您应该能够查询此对象并确定当前引擎.

  • JXcore还在`process.versions`中保留引擎版本号.目前这是`v8`,`sm`(SpiderMonkey)或`ch`(Chakra). (2认同)