Babel7+React+Webpack环境报regeneratorRuntime未定义错误如何解决
问题根因
- 配置文件名错误:你提到的
.babel.rc命名不符合Babel规范,Babel默认识别的配置文件为.babelrc(文件名中间无多余的点),会导致你的Babel配置完全未生效。 - @babel/plugin-transform-runtime配置缺失:默认配置下该插件不会自动注入regeneratorRuntime相关的polyfill,需要额外配置corejs参数并安装对应依赖。
- @babel/preset-env未配置polyfill注入规则:未指定
useBuiltIns和corejs参数的情况下,preset-env不会自动引入代码中需要的polyfill。
修复步骤
- 修正配置文件名:将
.babel.rc重命名为.babelrc - 安装缺失的依赖,执行命令:
npm i @babel/runtime-corejs3 regenerator-runtime --save - 更新
.babelrc配置为以下内容:
{ "presets": [ ["@babel/preset-env", { "targets": "> 0.25%, not dead", "useBuiltIns": "usage", "corejs": 3 }], "@babel/preset-react" ], "plugins": [ ["@babel/plugin-transform-runtime", { "corejs": 3, "regenerator": true }] ] }
- 清除本地构建缓存,终止当前启动的开发服务后重新执行启动命令,验证问题是否解决。
兜底兼容方案
如果上述配置后仍存在报错,直接在项目入口文件(通常是src/index.js)的第一行添加如下导入语句即可:
import 'regenerator-runtime/runtime'
内容的提问来源于stack exchange,提问作者ABC
相关产品推荐
相关产品推荐

