【问题标题】:How to detect from nodejs which JavaScript engine it is running on?如何从 nodejs 检测它正在运行哪个 JavaScript 引擎?
【发布时间】:2016-05-04 09:28:17
【问题描述】:

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

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

我知道的引擎是:

  • Google 的 V8 - 官方 node.jsiojs 分支支持的唯一引擎。 JXcore 支持的引擎之一。
  • Mozilla 的 SpiderMonkey - JXcore 支持的引擎之一。
  • Microsoft 的 ChakraCore - Microsoft 的 node.js 端口支持的引擎,显然是 JXcore 支持的引擎之一,尽管我还没有那个工作。

(I've asked a separate question about detecting which fork of nodejs is being used.这个问题只是检测JS引擎的问题。)

【问题讨论】:

    标签: node.js spidermonkey javascript-engine jxcore chakra


    【解决方案1】:

    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'
        }
    }
    

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

    【讨论】:

    • processversions 对象中的字段实际上在 nodejs 端口之间具有不同的字段。我想记录答案中的差异,但到目前为止,我无法将 MS 的 nodejs 与 ChakraCore 与 JXcore 与 Chakra 进行比较,因为我找不到 how to use the latter on Windows 7
    • JXcore 还将引擎版本号保存在 process.versions 中。目前这是v8sm(蜘蛛猴)或ch(脉轮)。
    猜你喜欢
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多