如何处理基于不同 ES 版本的多个 Webpack 构建?

问题描述

tl;博士

如何将我的脚本 main.js 的不同版本导出为 main-es-2017.jsmain-es5.js 并将这两个文件都包含在我的 HTML 中?

问题的长版:

当我们将文件转换为 ES5 时,会添加一些现代浏览器不需要的不必要代码,因此我想导出多个版本的脚本,一个用于旧浏览器,另一个用于新浏览器。

我知道我们可以简单地使用一个简单的 nomodule 属性加载不同的文件,但如何使用 Webpack 处理它。

我使用 HTMLWebpack plugin 创建 HTML,我使用 HTML No Module plugin 添加 No Module 属性

参考链接https://philipwalton.com/articles/deploying-es2015-code-in-production-today/

提前致谢!!!

解决方法

在网上绞尽脑汁后,我找不到答案,所以我不得不实施一个我不推荐的自定义解决方案,因此在寻求自定义解决方案之前,有一个名为“HTMLWebpackTagsPlugin”的第三方插件" 为生成的 HTML 添加资源,您可以在构建成功后将 JS 文件的 CSS 添加到您的 HTML 文件中。

虽然这对我来说不是一个解决方案,因为构建运行了多次,覆盖了生成的 HTML。

我的解决方案: 我为 Webpack HTML 插件创建了一个插件,它记录了构建文件路径,然后我创建了一个自定义脚本,该脚本在构建成功后运行并将构建脚本注入 HTML。

我将尝试创建一个易于所有人理解的开源代码模板。