Can't resolve '@babel/runtime-corejs3/helpers/asyncToGenerator'

发布于 2022-09-12 23:38:01 字数 818 浏览 14 评论 0

背景

传统项目需要兼容浏览器保证支持es6语法,所以需要构建一个webpack的打包环境,将大量js的es6,es7等语法转成es5的js输出文件做替换。目前面临的问题是少部分的es6语法以及es7的async await语法不支持,需要@babel/plugin-transform-runtime支持,但是加上这个插件后语法下面的问题,无法解决

清单

安装包有@babel/preset-env、@babel/runtime、@babel/plugin-transform-runtime、@babel/plugin-transform-regenerator
babel-loader版本8.2.2。网上大量博客的配置已经不适用这个8.2.2版本
所有包如下所示
image.png

配置

.babelrc和webpack.config.js都做了配置,这两者新手不知道有什么区别
.babelrc文件
image.png
webpack.config.js配置的是babel-loader加载器
image.png

错误信息

image.png

我真的是尽力了啊,资料也查的差不多了,就是报这个错误,真的不想把时间浪费到这。。。实在不行直接把语法从es6改成es5吧?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不甘平庸 2022-09-19 23:38:01

@babel/plugin-transform-runtime插件 的配置项去掉下面这行试试,我猜是你指定了core-js导致找不到对应的polyfill。或者尝试npm i @babel/runtime-corejs3

"corejs": 3 // 移除

我写了个简单的例子,一次就过,不知道你是怎么回事。

  • webpack.config.js

    const path = require('path');
    
    module.exports = {
    mode: 'development',
    entry: './src/index.js',
    output: {
      filename: 'main.js',
      path: path.resolve(__dirname, 'dist'),
    },
    module: {
      rules: [
        {
          test: /\.m?js$/,
          exclude: /(node_modules|bower_components)/,
          use: {
            loader: 'babel-loader',
            options: {
              presets: ['@babel/preset-env'],
              plugins: ['@babel/plugin-transform-runtime']
            }
          }
        }
      ]
    }
    };
  • .browserslistrc

    > 1%
    last 2 versions
    not dead
  • package.json
{

  "devDependencies": {
    "@babel/core": "^7.14.0",
    "@babel/plugin-transform-runtime": "^7.13.15",
    "@babel/preset-env": "^7.14.1",
    "babel-loader": "^8.2.2",
    "webpack": "^5.37.0",
    "webpack-cli": "^4.7.0"
  }}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文