11

正如在 Webpacks 5.0 发布博客文章中宣布的那样,经过对webpack.config.js.

但它在 Internet Explorer (11) 中停止工作,因为生成的输出是混合的ES6ES5因此与 IE 不兼容(见图)。

生成的代码

因为它实际上导致使用各种 babel 插件无法成功构建,所以我问自己是否有一种“简单”的方法可以将 ES5 指定为生成的输出。

从 beta 阶段开始,我在Medium上发现了一个似乎不再起作用webpack-5的标志。

module.exports = {
  output: {
    filename: [name].js,
    ecmaVersion: 5 // <- this flag
  }
}

5.x 版中是否有一些“内置方式”以将 ES5 作为输出目标?

4

2 回答 2

31

webpack guide To v5 from v4,它说:

默认情况下,webpack 的运行时代码使用 ES2015 语法来构建更小的包。如果您的构建目标环境不支持此语法(如 IE11),则需要设置target: ['web', 'es5']为恢复为 ES5 语法('web'如果目标环境是浏览器)。

所以你可以尝试设置:

target: ['web', 'es5']

然后它将代码转换为 ES5。

于 2020-10-23T05:40:56.797 回答
5

你可以手动配置 webpack 运行时中可用的特性output.environment

但是,默认情况下, webpack 5 将尊重browserslist它找到的任何条目,并将运行时设置为仅使用目标浏览器中可用的那些功能。您可以使用此处的任何方法配置要定位的浏览器,但最简单的方法是在您的package.json

"browserslist": "ie 11"
于 2020-10-22T21:18:54.827 回答