如何在Node 5.6.0环境中运行Node 6 npm软件包?

时间:2016-07-14 01:22:49

标签: javascript node.js npm ecmascript-6

我目前正在使用一个程序包来运行名为easy-sauce的跨浏览器javascript测试。简而言之,我的package.json文件调用test命令:

{
  "scripts": {
    "test": "easy-sauce"
  }
}

当我使用Node 6环境并运行npm test时,一切都很顺利。但是,我使用它的项目仍然需要Node 5.6.0。当我在此环境中运行npm test时,我看到以下错误:

/data/projects/easytest/node_modules/easy-sauce/lib/cli.js:114
function formatResult(result = {}) {
                         ^

SyntaxError: Unexpected token =
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (/data/projects/easytest/node_modules/easy-sauce/bin/easy-sauce:6:13)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)

有没有办法让它在Node 5.6.0环境中运行?

2 个答案:

答案 0 :(得分:1)

此错误与easy-sauce包无关,它与您的节点版本有关。

根据node.green,版本6.2.2中添加了默认参数

http://node.green/

不幸的是,您无法在节点5中运行代码。默认参数在节点6.2中,因此出错。

答案 1 :(得分:1)

选项1 升级您的node / npm版本。根据部署环境,这并不总是可行的。

选项2 您需要使用转换器(例如Babel)将ES6代码转换为ES5并引用构建的脚本。这种解决方案是您始终有能力做到的。

选项3 fork / update easy-sauce包含一个转换器来构建ES5版本(在dist文件夹中是一个公共目的地)。包的package.json可以定向到这个位置。