我正在运行一个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"
}
我花了大约一天半的时间试图解决这个问题,但没有找到解决方案。
提前感谢!
安装@ 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" } }]],