由Babel Polyfill引起的IE11错误-委托.iterator.return

时间:2019-02-08 13:18:59

标签: javascript webpack babel

希望在以下方面获得帮助:

问题

@ babel / polyfill在IE11中导致错误:

SCRIPT1010: Expected identifier

在线调试器点:

if (delegate.iterator.return) {

maybeInvokeDelegate()插件的函数regenerator-runtime中。

但是

问题仅在测试环境中发生。当我使用完全相同的构建,相同的浏览器在本地运行我的应用程序时,它的运行正常。它包含相同的代码,但不会破坏任何内容。

我已经尝试过的方法:

  1. babel-plugin-transform-member-expression-literals似乎无济于事。

  2. 我尝试仅用必要的polyfill替换@ babel / polyfill,但失败了。在破坏应用程序时会出现很多错误,这些错误很难捕获/调试/理解。

  3. useBuiltIns: "usage"中设置.babelrc,但是在导入必要模块的方式上遇到了问题。我将再尝试一次。

  4. 我在github上浏览了regeerator-runtime和babel-polyfill的所有相同问题,但没有找到可行的解决方案。

配置

目前,我需要在webpack配置中使用@ babel / polyfill并将其用作入口点。我相信我什至不需要再生器运行时,因为据我所知它用于异步功能(也许我弄错了),我们不使用它们。

我没有将babel loader用于webpack,而是在webpack之后为/dist目录运行babel。

我的babelrc:

{
    plugins: ["transform-member-expression-literals"],
    presets: [
        [ "@babel/preset-env",
          {
              useBuiltIns: "entry",
              modules: "false",
              targets: {
                  ie: 11
              }
          }]
    ]
}

webpack.config

require("@babel/polyfill")

const getDefaultConfig = env => ({
  mode: "development",
  entry: ["whatwg-fetch", "@babel/polyfill", "./src/index.js"],
... })

我已将所有babel软件包更新为最新版本。

感谢任何帮助或想法。

1 个答案:

答案 0 :(得分:0)