regeneratorRuntime未定义(如何防止Babel包括该polyfill?)

12

我继续遇到以下错误:

App.jsx:11 未捕获的引用错误:regeneratorRuntime未定义

在任何使用async函数的代码行上。我不知道如何解决这个填充问题,但是我很难摆脱它:

app.jsx:11)

 const fetcher = (async () => {

  "@babel/cli": "^7.4.4",
   "@babel/core": "^7.4.4",
   "@babel/preset-env": "^7.4.4",
   "@babel/preset-react": "^7.0.0",
   "@types/react": "^16.8.17",
   "babel-preset-env": "^1.7.0"

这里是.babelrc

{
    "presets": [
        [
            "@babel/preset-env",
            {
                "targets": {
                    "chrome": ">70",
                },
                "exclude": ["transform-regenerator"]
            },
            "@babel/preset-react"
        ]
    ]
}
2个回答

13
如果你想在(ES6或ES Next)中使用异步,等待操作,则必须安装@babel/polyfill,但是不需要在babelrc文件中编写任何内容。只需安装npm install --save @babel/polyfill即可。
来自文档:
由于这是一个 polyfill(将在您的源代码之前运行),我们需要它作为依赖项,而不是devDependency。
最后,在您的mainJS(App.js)文件中导入@bable/polyfill,如下所示:
import "@babel/polyfill";

2
@babel/polyfill已经被弃用。 - Andrew Koster
还要注意的是,这会给您的库添加大量冗余内容。在我的情况下,它增加了约30KB的大小。 - F Lekschas

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接