开玩笑和特拉维斯CI,"SyntaxError: Unexpected strict mode reserved word"



我写了一个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的jest实现上的jest/jest版本中的错误吗?如果是这样,是否有解决方法?或者(更有可能)我错过了一些明显的东西吗?

您尚未在.travis.yml中指定 Node.js 版本,并且似乎已安装版本 0.10.48 。当时不支持let,当您尝试使用此类保留字之一(至少在严格模式下)时,它会引发错误。

应始终指定要在其上运行它的 Node.js 版本。

例如,如果只想在最新的8.x版本上运行它,则可以使用以下配置:

language: node_js
node_js:
  - "8"

相关内容

最新更新