我正在尝试配置jest,但面对无法处理es6功能的事实。
要解决此问题,我已将配置添加到package.json:
"jest": {
"transform": {
"^.+\\.jsx?$": "./node_modules/babel-jest"
},
}
我的.babelrc配置:
{
"presets": [
"react",
"es2017",
"stage-0",
["env", {
"targets": {
"browsers": ["last 2 versions"]
},
"spec": true,
"modules": false,
"debug": true
}],
],
"plugins": [
["transform-class-properties", { "spec": true }]
]
}
对我来说看起来很合适,但无论如何,jest无法在Test suite failed to run
上使用import React from 'react';
和
class App extends Component {
static propTypes = {}
}
目前我不知道出了什么问题,但看起来这个stage-x功能不仅在env预设中不可用,而且plugins
和其他预设被忽略。
但是webpack构建包没有任何错误。
所以看起来像是开玩笑的问题。
可以帮我看看发生了什么事吗?
==========
fixed config .babelrc
:
{
"presets": [
"react",
"es2015",
"es2016",
"es2017",
"stage-0",
["env", {
"targets": {
"browsers": ["last 2 versions"]
},
"spec": true,
"modules": false,
"debug": true
}],
],
"plugins": [
["transform-class-properties", { "spec": true }]
]
}
和package.json
:
"jest": {
"moduleNameMapper": {
"config.env": "<rootDir>/config/application.production.js",
"^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|po)$": "<rootDir>/__mocks__/fileMock.js",
"^.+\\.(css|less)$": "<rootDir>/__mocks__/styleMock.js"
},
"moduleFileExtensions": [
"js",
"jsx",
"js",
"json"
]
},
答案 0 :(得分:1)
es2017
预设不包括es2016
和es2015
。
您可以明确地包含所有这些内容,也可以使用preset-env代替。
此外,您不必在jest配置中显式设置transform
属性。
注意:安装Jest时会自动安装babel-jest,如果您的项目中存在babel配置,它将自动转换文件。