我如何在Node 5.6.0环境中运行Node 6 npm包?
我目前正在使用一个运行跨浏览器JavaScripttesting的软件包,称为easy-sauce
。 简而言之,我的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环境下工作?
这个错误与easy-sauce包没有关系,它与你的版本节点有关。
根据node.green,在版本6.2.2中添加了默认参数
不幸的是,你将无法运行节点5中的代码。缺省参数在节点6.2中,因此出现错误。
选项1升级您的节点/ npm的版本。 这并不总是可能的,这取决于部署环境。
选项2您需要使用转换器(例如Babel)将ES6代码转换为ES5并引用构build的脚本。 这个解决scheme是您始终有能力做的。
选项3叉/更新easy-sauce
包括一个编译器build立一个ES5版本(在dist
文件夹是一个共同的目的地)。 包的package.json可以被定向到这个位置。