Javascript Jest、env预设和stage-0功能
我正在尝试配置jest,但它无法处理es6功能 为了解决这个问题,我在package.json中添加了配置:Javascript Jest、env预设和stage-0功能,javascript,reactjs,babeljs,jestjs,babel-jest,Javascript,Reactjs,Babeljs,Jestjs,Babel Jest,我正在尝试配置jest,但它无法处理es6功能 为了解决这个问题,我在package.json中添加了配置: "jest": { "transform": { "^.+\\.jsx?$": "./node_modules/babel-jest" }, } My.lrc配置: { "presets": [ "react", "es2017", "stage-0", ["env", { "targets": {
"jest": {
"transform": {
"^.+\\.jsx?$": "./node_modules/babel-jest"
},
}
My.lrc配置:
{
"presets": [
"react",
"es2017",
"stage-0",
["env", {
"targets": {
"browsers": ["last 2 versions"]
},
"spec": true,
"modules": false,
"debug": true
}],
],
"plugins": [
["transform-class-properties", { "spec": true }]
]
}
对我来说,它看起来很合适,但jest无论如何都无法运行,testsuite未能在import-React from'React'上运行
代码>和中的道具
class App extends Component {
static propTypes = {}
}
目前我不知道出了什么问题,但看起来stage-x功能不仅在env预设中不可用,而且插件和其他预设被忽略。
但是webpack构建包没有任何错误。
看来这是个笑话
能帮我弄清楚发生了什么事吗
==========
固定配置.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"
]
},
“开玩笑”:{
“moduleNameMapper”:{
“config.env”:“/config/application.production.js”,
“^.+\(jpg | jpeg | png | gif | eot | otf | webp | svg | ttf | woff | woff2 | mp4 | webm | wav | mp3 | m4a | aac | oga | po |$”:“/\uu mocks |/fileMock.js,
“^.+\\(css |减去)$”:“/\uu mocks\uuu/styleMock.js”
},
“moduleFileExtensions”:[
“js”,
“jsx”,
“js”,
“json”
]
},
预设的es2017
不包括es2016
和es2015
。
您可以显式地包含所有这些内容,也可以使用
此外,您不必在jest配置中显式设置transform
属性
注意:babel jest在安装jest时自动安装,如果项目中存在babel配置,它将自动转换文件
好吧,我已经删除了它,但是jest仍然无法从'React'导入React愚蠢的我,我怎么会错过它。。您应该使用,因为es2017
不包括es2016
和es2015
。我会修正答案,但实际上我在上面的配置中有预设env
,但看起来你是对的,我已经将配置更改为上面的[package.json]和[babelrc]。我把它们放到了原始帖子中,因为它们不适合评论的大小。但我觉得我的宝贝现在有点奇怪。