初学webpack,打包时遇到,遇到下面的错误信息:
ReferenceError: regeneratorRuntime is not defined
这个报错是由于 async function 语法被 babel 转译之后的代码使用了 regeneratorRuntime 这个变量,但是这个变量在最终的代码里未定义造成的报错。
解决办法:
安装babel的插件:@babel/plugin-transform-runtime
补充这个插件的安装使用方法:
1、首先写一个 babel 配置文件:【.babelrc】
目录结构位置如下:
.babelrc 文件的配置:
{
"plugins": [
[
"babel-plugin-transform-runtime",
{
"absoluteRuntime": false,
"corejs": false,//使用哪个core-js的版本,有2,和3两个版本一般用2
"helpers": true,
"regenerator": true,
"useESModules": false
}
]
]
}
选项说明
辅助(helpers)
默认值是:true
表示是否开启内联的babel helpers(即babel或者环境本来的存在的垫片或者某些对象方法函数)(clasCallCheck,extends,etc)在调用模块名字(moduleName)时将被替换名字。
垫片/polyfill
默认值是:`true’
表示是否把内置的东西(Promise,Set,Map,tec)转换成非全局污染垫片。
重新生成/regenerator
默认值是:true
是否开启generator函数转换成使用regenerator runtime来避免污染全局域。
模块名字/moduleName
默认值:babel-runtime
当调用辅助(内置垫片)设置模块(module)名字/路径.
再次致谢npm run dev 又报错
执行 npm install babel-plugin-transform-runtime 最终顺利执行