通过Webpack 5应用程序构建后,停止在Internet ExplorerIE11上运行

问题描述

CREATE TABLE table_name ( name ) AS SELECT 'ARZ USD 18M FX FORWARD' FROM DUAL UNION ALL SELECT 'BRZ USD 10Y FX FORWARD' FROM DUAL UNION ALL SELECT 'ARZ USD 1Y FX FORWARD' FROM DUAL UNION ALL SELECT 'ARZ USD 2M FX FORWARD' FROM DUAL UNION ALL SELECT 'BRZ USD 1M FX FORWARD' FROM DUAL UNION ALL SELECT 'ARZ USD 6M FX FORWARD' FROM DUAL UNION ALL SELECT 'ARZ USD 3M FX FORWARD' FROM DUAL UNION ALL SELECT 'ARZ USD 1M FX FORWARD' FROM DUAL UNION ALL SELECT 'ARZ USD 9M FX FORWARD' FROM DUAL UNION ALL SELECT 'BRZ USD 1Y FX FORWARD' FROM DUAL; 中进行了一些细微调整之后,如Webpacks 5.0版本中所宣布的那样,博客文章的构建仍可在大多数浏览器中使用。

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

Generated Code

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

ES5的beta阶段开始,我在Medium上发现了一个似乎不再起作用的标记

webpack-5

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

解决方法

webpack guide To v5 from v4中,它说:

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

因此您可以尝试设置:

target: ['web','es5']

然后它将代码转换为ES5。

,

您可以使用output.environment手动配置webpack运行时中可用的功能。

但是,by default webpack 5将使用它找到的所有browserslist条目,并将运行时设置为仅使用目标浏览器中可用的那些功能。您可以使用任何方法here配置要定位的浏览器,但最简单的方法是在package.json中指定一个键:

"browserslist": "ie 11"