【问题标题】:Use es7 decorator in jest开玩笑地使用 es7 装饰器
【发布时间】:2017-10-31 10:26:07
【问题描述】:

我在我的项目中使用了装饰器,但是 babel-jest 似乎不支持这个新的实验功能 我从 github issue ===> 中找到了一些支持,它用 webpack-babel-jest 替换了 babel-jest,它解决了装饰器问题。但是当我运行 npm run test ==> "ReferenceError: regeneratorRuntime is not defined" 时出现了一个新问题 看来我们需要 regenerator-runtime。(我在我的项目中使用 redux-saga)我无法解决这个问题。

package.json {
"babel-core": "^6.7.6",
"babel-eslint": "^7.2.3",
"babel-jest": "^21.2.0",
"babel-loader": "^6.2.4",
"babel-plugin-module-resolver": "^2.7.1",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-react-jsx-source": "^6.22.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.23.0",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"babel-preset-stage-0": "^6.5.0",
"css-loader": "^0.23.1",
"enzyme": "^3.1.0",
"enzyme-adapter-react-15.4": "^1.0.3",
"jest": "^21.2.1",
"node-sass": "^3.4.2",
"react-addons-test-utils": "^15.4.2",
"regenerator-runtime": "^0.11.0" }

   .babelrc {
{
"presets": [
    "es2015",
    "react",
    "stage-0"
],
"plugins": [
    "transform-decorators-legacy",
    "transform-react-jsx-source",
    "transform-class-properties",
["transform-runtime", {
  "polyfill": false,
  "regenerator": true
    }
],
"env": {
    "development": {

        "presets": [
            "react-hmre"
        ]
    },
    "test": {
        "presets": [
            "es2015",
            "react",
            "stage-0"
        ]
    }
}
}
}

【问题讨论】:

  • 最好在每个测试失败的文件中明确import * from "regenerator-runtime";

标签: javascript reactjs babeljs jestjs


【解决方案1】:

我无法解决这个问题。

这是众所周知的 regenerator-transform babel 插件问题,通常用于使用 sagas 转译代码。

在此处查看详细说明:Unable to export generator functions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 2020-06-08
    • 2019-05-13
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    相关资源
    最近更新 更多