玩笑和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" 
+0

为我工作!非常感谢! –