webpack 巴别塔7 -未捕获引用错误:未定义regeneratorRuntime

k3fezbri  于 2022-11-13  发布在  Webpack
关注(0)|答案(3)|浏览(198)

我得到错误Uncaught ReferenceError: regeneratorRuntime is not defined使用React与webpack和巴别塔。

this answer之后,我将.babel.rc定义为:

{
  "presets": ["@babel/preset-env", "@babel/preset-react"] ,
  "plugins": [
      ["@babel/plugin-transform-runtime"]
  ]
}

和运行:

npm i --save-dev @babel/plugin-transform-runtime

但是,之后我得到了完全相同的错误。我还跟踪了this other answerthis one,但仍然得到了完全相同的错误。
我的babel在package.json中的具体安装如下:

"dependencies": {
    "@babel/runtime": "^7.14.6"
  },
  "devDependencies": {
    "@babel/core": "^7.14.6",
    "@babel/plugin-transform-runtime": "^7.14.5",
    "@babel/preset-env": "^7.14.7",
    "@babel/preset-react": "^7.14.5"
  }

有什么想法吗?

c3frrgcw

c3frrgcw1#

嘿,我遇到了同样的问题,我正在使用巴别塔7,对我来说,我安装了这两个依赖:

npm install --save @babel/runtime
npm install --save-dev @babel/plugin-transform-runtime

并且,在.babelrc中,添加:

{
  "presets": ["@babel/preset-env"],
  "plugins": [
    ["@babel/transform-runtime"]
  ]
}

"这解决了我的问题"

koaltpgm

koaltpgm2#

{“预置”:[ ["@巴别塔/预设环境”,{“目标”:{“节点”:“9.2.1”} }],“@巴别/预设-React”] }
这是我的文件**.babelrc**
外观:
@babel/preset-env是一个智能预设,它允许您使用最新的JavaScript,而无需对目标环境所需的语法转换(以及可选的浏览器polyfills)进行微观管理。这不仅让您的工作更轻松,而且JavaScript包也更小!

您的问题:

你正在使用“@ babel / preset-env”,你必须指定要编译的节点版本。“节点〉7.6”。我建议10。
为什么node〉7.6Node.js 7.6在默认情况下提供了对async/await的官方支持,并在低内存设备上提供了更好的性能。

如何指定版本:很简单

目标.节点字符串|“当前”。

If you want to compile against the current node version, you can specify "node": "current", which would be the same as "node": process.versions.node.

对我来说是这样的:

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "9.2.1"
        }
      }
    ],
    "@babel/preset-react"
  ]
}

这样可以让编译器了解ASYNC AWAIT,希望对你有所帮助!

您还可以添加插件来处理“asyc away”

https://babeljs.io/docs/en/babel-plugin-transform-async-to-generator

注意-〉此配置适用于node-js;这只是一个例子

mccptt67

mccptt673#

这对我来说很有用:
How to allow async functions in React + Babel?
我的问题是我在我的.babel.rc文件和webpack.config.js文件中都定义了Babel插件。我需要从我的webpack.config.js文件中删除那个插件,只在我的.babel.rc文件中使用它。然后它就工作得很好了。

相关问题