webpack 报错 ReferenceError: regeneratorRuntime is not defined

初学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 最终顺利执行