OSX中的解构工作在Linux上失败

我正在使用一些在我创build的摩卡testing中使用的一些ES6function,其中包括一些解构语句。 这是一个例子:

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

我大部分时间都是从OSX上运行这些testing脚本,它的function就像一个魅力一样。 但是因为nodejs服务利用了一些Unix的二进制文件,所以我也需要在Linux中进行testing。 没问题我用Vagrant VM切换到Linux,并指向完全相同的testing脚本,并得到以下错误堆栈:

 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标志来启用。

您可能在两种环境中以不同的方式运行脚本。 你将哪些标志传递给节点运行时?

您可以运行以下命令来查看受支持的ES2015function列表:

 node --v8-options | grep harmony 

在那里,你会看到哪些是“进行中”,这意味着他们默认情况下被禁用。