将 Webpack 从 v4 迁移到 v5 后,我的反应应用程序在 IE11 中不 运行

My react app not running in IE11 after migrated Webpack from v4 to v5

我按照 webpack 文档更改了我的应用程序的配置:https://webpack.js.org/migrate/5/。 此后,该应用程序在 chrome 和边缘上成功运行,但在 IE11 中无法运行。

我有一个 .browserslistrc 文件,里面有 IE11,也更改了 target: ['web', 'es5'],然后将 import 'react-app-polyfill/ie11'; import 'react-app-polyfill/stable'; 添加到 src/index.js,但问题仍然存在。 我使用以下 babel 配置:

  "presets": [
    [
      "@babel/preset-env", 
      { 
        "useBuiltIns": "entry",
        "corejs": 3
      }
    ],
    "@babel/preset-react"
  ],
  "plugins": [
    "@babel/plugin-transform-object-assign", 
    "@babel/plugin-proposal-object-rest-spread", 
    "@babel/plugin-transform-regenerator", 
    "@babel/plugin-proposal-class-properties", 
    "@babel/plugin-transform-runtime"
  ]
}

经过大量调查,我发现了这个:

https://github.com/feross/buffer/commit/840160f352ff0d8e88d4ac308a1640fd278f50fc

所以我的问题的解决方案是配置 babel-loader 来转译这个包:

{
    test: /\.js$/,
    include: [
       path.join(__dirname, 'src'),
       path.join(__dirname, 'node_modules/buffer'),
    ],
    loader: 'babel-loader',
}