我写了一个npm模块,我试图与Travis CI一起使用。我的测试是用Jest编写的,当我从本地命令行运行它们时都会通过。
但是,当我将它们上传到github(https://github.com/jaysaurus/echo-handler)时,travis运行我的代码并吐出以下异常:
0.69s$ npm test
> echo-handler@1.1.2 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",
但我仍然得到相同的错误
这是一个开玩笑的错误/ Travis CI / Travis CI的开玩笑实施的笑话版本?如果是这样,有解决方法吗?或者(更有可能)我错过了一些明显的东西?
答案 0 :(得分:3)
您尚未在.travis.yml
中指定Node.js版本,并且它似乎有installed version 0.10.48
。当时let
不受支持,当您尝试使用其中一个保留字时(至少在严格模式下),它会引发错误。
您应始终specify the Node.js versions想要运行它。
例如,如果您只想在最新的8.x
版本上运行它,您将使用以下配置:
language: node_js
node_js:
- "8"