如果节点引擎是8 +,是否可以在带有Jest的代码中使用spread运算符而不使用babel?
我在我的应用程序中放弃了对Node.js< 8的支持,并假设我可以删除所有babel依赖项并从package.json
转换,但是npm run jest
会立即失败并出现以下类型的错误:
FAIL test/workers/repository/onboarding.spec.js
● Test suite failed to run
/Users/me/project/lib/workers/repository/onboarding.js: Unexpected token (13:17)
11 |
12 | async function createOnboardingBranch(inputConfig) {
> 13 | let config = { ...inputConfig };
| ^
有没有办法让Jest工作而不需要添加所有babel依赖项和配置?
Node.js版本:8.9.0
开玩笑版本:20.0.4
package.json
中的jest配置:
"jest": {
"cacheDirectory": ".cache/jest",
"coverageDirectory": "./coverage",
"collectCoverage": true,
"collectCoverageFrom": [
"lib/**/*.js"
],
"coverageReporters": [
"json",
"lcov",
"text-summary"
],
"setupTestFrameworkScriptFile": "./test/chai.js"
},
编辑:
我已经能够将我的babel配置缩小到一个插件:babel-plugin-transform-object-rest-spread
并在package.json
中配置babel,如下所示:
"babel": {
"plugins": [
"transform-object-rest-spread"
]
},
取消或尝试使用babel-preset env会导致Jest再次失败。