玩笑和Travis CI,“语法错误:意外的严格模式保留字”
问题描述:
我写这我想与特拉维斯CI使用的NPM模块。我的测试是用Jest编写的,当我从本地命令行运行时,所有测试都通过了。玩笑和Travis CI,“语法错误:意外的严格模式保留字”
然而,我将它们上传到github上(https://github.com/jaysaurus/echo-handler)时,特拉维斯运行我的代码,并吐出了以下异常:
0.69s$ npm test
> [email protected] test /home/travis/build/jaysaurus/echo-handler
> jest __tests__/*.js
/home/travis/build/jaysaurus/echo-handler/node_modules/jest/node_modules/jest-cli/build/cli/index.js:1
sModule", { value: true });exports.runCLI = exports.run = undefined;let run =
^^^
SyntaxError: Unexpected strict mode reserved word
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/travis/build/jaysaurus/echo-handler/node_modules/jest/node_modules/jest-cli/bin/jest.js:13:1)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
npm ERR! Test failed. See above for more details.
我想,如果我的体型是偶然看在/ node_modules。 .gitignore已被设置为忽略/ node_modules,我甚至试图设置我的package.json明确运行:"test": "jest __tests__/*.js",
但我仍然得到相同的错误
这是一个在jest /特拉维斯CI /特拉维斯CI实施笑话?如果是这样,是否有解决方法?或者(更有可能)我错过了明显的东西?
答
你有没有在你的.travis.yml
指定的Node.js版本,看来,它具有installed version 0.10.48
。当时let
没有得到支持,当你试图用这样的保留字一个(至少在严格模式下),它抛出一个错误。
你应该总是specify the Node.js versions要上运行它。
例如,如果你只想在最新版本8.x
运行它,你可以使用以下配置:
language: node_js
node_js:
- "8"
为我工作!非常感谢! –