【问题标题】:Set Harmony flags in the file在文件中设置 Harmony 标志
【发布时间】:2015-08-16 10:09:18
【问题描述】:

我通过在 io.js 上运行 ES6 来使用不同的标志,例如:

iojs --harmony_arrow_functions arrow.es6
iojs --harmony_modules --harmony_destructuring importer.es6

但是不断手动编写这些标志很无聊 我总是混淆特定文件需要哪些标志。我可以在文件中设置标志吗:

process.env['--harmony_modules'];
process.env['--harmony_destructuring']; or
process.env['flags'] = ['--harmony_modules', '--harmony_destructuring'];

或者使用 ./config 文件运行 io.js

【问题讨论】:

    标签: javascript node.js environment-variables ecmascript-6


    【解决方案1】:

    如果您只是在尝试 ES6,请尝试 babel.js REPL。还可以查看他们的setup page,其中提供了有关如何使用 babel 即时转换代码的说明(适用于许多不同的工具/用例)。

    如果您不想使用像 babel.js 这样的转译器,那么您可以创建一个别名或脚本来执行 io.js 并启用所有和谐标志,然后使用它来启动所有脚本。例如,作为别名:

    alias iojs-es6='iojs --harmony_arrow_functions --etc...'
    

    请注意,对于 io.js (V8 4.1+) 所有 stable ES6 features are enabled by default。所以你只需要为其他任何东西提供标志:

    • staging - 使用 --es_staging 启用 - 目前只是 Symbol.toStringTag
    • in progress - 目前 : --harmony_modules --harmony_arrays --harmony_array_includes --harmony_regexps --harmony_arrow_functions --harmony_proxies --harmony_sloppy --harmony_unicode

    【讨论】:

      【解决方案2】:

      io.js 与 Node 合并:https://iojs.org

      你说每次都传递标志很烦人。 你可以像这样向你的 package.json 添加一个脚本:

        "scripts": {
          "start": "node --es_staging --harmony_destructuring server.js"
        }
      

      然后npm run start 或简称npm start 将运行您的脚本。

      许多 ES2015/ES6 功能现在在 Node 中启用,开箱即用: https://nodejs.org/en/docs/es6/

      您可以使用不会自动启用的稳定 ES2015 功能运行节点,如下所示: node --es_staging server.js

      您可以在 Bash 中运行此命令以查看所有和谐标志: node --v8-options | grep harmony

      例如,要获得 ES2015 功能和解构(从 Node 5.3 起目前不稳定):

      node --es_staging --harmony_destructuring server.js

      为了让 Node 保持最新状态,nvm 非常棒:https://www.npmjs.com/package/nvm

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-12
        • 1970-01-01
        • 2015-06-03
        • 2014-12-29
        • 1970-01-01
        • 1970-01-01
        • 2014-12-20
        • 1970-01-01
        相关资源
        最近更新 更多