Bable不为Jest / React编译JSX

时间:2017-04-25 21:22:26

标签: reactjs babeljs jestjs

我试图用JEST for React设置单元测试。

我当前的设置在Package.json:

 "jest": {
"transform": {
  "^.+\\.jsx?$": "babel-jest"
},
"moduleFileExtensions": [
  "js",
  "json",
  "jsx"
]

}

然后在里面.babelrc我有:

{
    "plugins": ["syntax-dynamic-import", "transform-runtime"],
  "presets": [
    [
      "es2015",
      {
        "modules": false
      }
    ],
    "react"
  ],
  "env": {
    "test": {
      "presets": ["es2015", "react"]
    }
  }
  }

然后我运行npm test,然后开始运行jest。但是,它将错误/失败: 测试套件无法在

处运行时出错
                 componentDidMount=()=>{
           |                      ^
        25 |         window.addEventListener('scroll', this.handleScroll)
        26 |     }

这告诉我,当测试进入正确的Component时,它最终会以某种es2015语法停止。

我有什么设置错了吗?看来babelrc实际上并没有在JEST尝试运行测试之前进行转换?它是否正确? 我的.babelrc处于根级别。

1 个答案:

答案 0 :(得分:0)

你错过了transform-class-properties babel plugin。静态类属性不是ES2015的一部分,需要单独的插件。