我有一个使用ES6的简单javascript项目,加上import
和export
。这是我的.babelrc
文件
{
"env": {
"es": {
"presets": [
[
"env",
{
"targets": {
"browsers": ["last 2 versions"],
"node": "current"
},
"modules": false
}
]
],
"ignore": ["**/*.test.js", "**/tests/*"]
},
"test": {
"presets": ["env"]
},
"cjs": {
"presets": [
[
"env",
{
"targets": {
"browsers": ["last 2 versions"],
"node": "current"
}
}
]
],
"ignore": ["**/*.test.js", "**/tests/*"]
}
}
}
我使用npm test
运行我的测试,package.json
运行此命令来自"test": "jest --notify"
:SyntaxError: Unexpected token import
。
在本地,一切运行正常,我的所有测试都通过,但当我推送到Travis时,我收到此错误:import
。它无法识别我的.travis.yml
语句。
这是我的language: node_js
cache:
yarn: true
node_js:
- '8.4'
script:
- npm test
env:
- NODE_ENV: feature/travis
:
.babelrc
为什么我的{{1}}没有在特拉维斯工作?我错过了什么?
答案 0 :(得分:2)
可能会发生这种情况,因为您已在NODE_ENV: feature/travis
中定义了travis.yml
。这将导致Travis以NODE_ENV=feature/travis jest --notify
运行您的测试。
这通常不应引起关注,但jest
会自动将NODE_ENV设置为test
(如果尚未设置)。
可能是您的问题类似于https://github.com/facebook/jest/issues/3370处发生的讨论。关于Jest 是否应该自动将NODE_ENV
设置为test
或者如果不存在development
则应该使用NODE_ENV
存在争议(或者只是尊重NODE_ENV
已经设置的全局设置。
您还可以在jest-cli
https://github.com/facebook/jest/blob/master/packages/jest-cli/bin/jest.js#L12-L14
因此,我的建议是测试此,而不在NODE_ENV
中设置travis.yml
,以确定它是否成功运行了所有测试。