Javascript Jest、env预设和stage-0功能

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,但它无法处理es6功能

为了解决这个问题,我在package.json中添加了配置:

"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'导入Reactes2017
不包括
es2016
es2015
。我会修正答案,但实际上我在上面的配置中有
预设env
,但看起来你是对的,我已经将配置更改为上面的[package.json]和[babelrc]。我把它们放到了原始帖子中,因为它们不适合评论的大小。但我觉得我的宝贝现在有点奇怪。