Babel要么在边缘工作,但由于开玩笑而失败,反之亦然

问题描述 投票:1回答:1

我正在运行一个React应用,只是得知它无法在Microsoft Edge中加载。

在我的babel配置中,这是我所拥有的:

module.exports = {
  presets: ['@babel/preset-react', ['@babel/preset-env', {
    targets: {
      node: "current"
    }
  }]],
  plugins: ['@babel/plugin-proposal-class-properties']
};

我的测试使用Jest运行,没有问题,因此我的CI / CD实现(CircleCI和Heroku)也正常工作。

为了使我的应用程序在Edge中工作,我将babel配置更改为此:

module.exports = {
  presets: ['@babel/preset-react', ['@babel/preset-env', {
    targets: {
      "browsers": ["last 2 versions"],
      node: "current"
    }
  }]],
  plugins: ['@babel/plugin-proposal-class-properties']
};

现在,Edge已加载,但是运行测试时出现错误。

● Test suite failed to run

ReferenceError: regeneratorRuntime is not defined

这是我的devDependencies:

"devDependencies": {
    "@babel/core": "^7.2.2",
    "@babel/node": "7.x",
    "@babel/plugin-proposal-class-properties": "^7.7.0",
    "@babel/preset-env": "^7.3.1",
    "@babel/preset-react": "^7.0.0",
    "babel-eslint": "^10.0.1",
    "babel-jest": "^24.8.0",
    "babel-loader": "^8.0.5",
    "babel-preset-env": "^1.7.0",
    "concurrently": "^4.1.0",
    "eslint": "^5.12.1",
    "eslint-plugin-react": "^7.12.4",
    "nodemon": "^1.18.9",
    "regenerator-runtime": "^0.13.3",
    "webpack": "^4.29.0",
    "webpack-cli": "^3.2.1"
  }

我花了大约一天半的时间试图解决这个问题,但没有找到解决方案。

提前感谢!

reactjs jestjs babel
1个回答
0
投票
这是我找到的解决方案:https://github.com/babel/babel-loader/issues/560

安装@ babel / plugin-transform-runtime

将其添加到您的babel config插件设置中,如下所示:

plugins: [["@babel/transform-runtime", { "regenerator": true }]]

预设可以保持不变:

presets: ['@babel/preset-react', ['@babel/preset-env', { targets: { "browsers": ["last 2 versions"], node: "current" } }]],

© www.soinside.com 2019 - 2024. All rights reserved.