Jest和travis CI," SyntaxError:意外的严格模式保留字"

时间:2017-10-16 10:02:06

标签: node.js travis-ci jestjs

我写了一个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的开玩笑实施的笑话版本?如果是这样,有解决方法吗?或者(更有可能)我错过了一些明显的东西?

1 个答案:

答案 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"
相关问题