解构在 OSX 中有效,在 Linux 中失败

Destructuring works in OSX, fails on Linux

我在我创建并包含的一些 Mocha 测试中使用了一些 ES6 功能集,其中包括一些解构语句。这是一个例子:

const {logger, saveProxy, resolved, msg} = helpers;

我 运行 这些测试脚本大部分时间来自 OSX,它的效果非常好。但是因为 nodejs 服务使用了一些仅限 Unix 的二进制文件,所以我也需要在 Linux 中进行测试。没问题,我使用 Vagrant VM 切换到 Linux 并指向完全相同的测试脚本并得到以下错误堆栈:

const {logger, saveProxy, resolved, msg} = helpers; 
      ^

SyntaxError: Unexpected token {
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at /usr/lib/node_modules/mocha/lib/mocha.js:216:27
    at Array.forEach (native)
    at Mocha.loadFiles (/usr/lib/node_modules/mocha/lib/mocha.js:213:14)
    at Mocha.run (/usr/lib/node_modules/mocha/lib/mocha.js:453:10)
    at Object.<anonymous> (/usr/lib/node_modules/mocha/bin/_mocha:393:18)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:430:10)
    at startup (node.js:141:18)
    at node.js:1003:3

在Linux和OSX中我都是运行宁节点版本5.4.0所以解构应该不是问题。我束手无策,有人可以帮忙吗?

解构仍在 node.js 中进行,可以使用 --harmony_destructuring 标志启用。

您可能 运行 在这两种环境中使用不同的脚本。您要将哪些标志传递给节点运行时?

您可以通过运行查看支持的 ES2015 功能列表:

node --v8-options | grep harmony

在那里你会看到哪些是 "in progress",这意味着它们默认被禁用。