webpack4使用HtmlWebpackPlugin插件生成html时的runtimeChunks注入问题

发布于 2022-09-11 18:13:49 字数 1763 浏览 16 评论 0

问题描述

webpack4使用HtmlWebpackPlugin插件生成html时的runtimeChunks注入问题

问题出现的环境背景及自己尝试过哪些方法

Webpack4使用optimization.splitChunks.cacheGroups提取公共代码块,再声明runtimeChunks为所有chunk生成一个运行时文件manifest,最后在使用HtmlWebpackPlugin生成html时,将manifest添加到HtmlWebpackPlugin.chunks中。最后发现splitChunks生效了,manifest也注入到了html中,但是实际上却无法根据manifest加载对应的代码块

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
// webpack.config optimization
optimization: {

runtimeChunk: {
    name: 'manifest'
},
splitChunks: {
    cacheGroups: {
        vendors: {
            test: /[\\/]node_modules[\\/]/,
            name: 'vendors',
            minSize: 30000,
            minChunks: 1,
            chunks: 'initial',
            priority: 1
        },
        libs: {
            test: /[\\/]resources[\\/]js[\\/]/,
            name: 'libs',
            minSize: 30000,
            minChunks: 2,
            chunks: 'initial',
            priority: 0,
            reuseExistingChunk: true
        }
    }
}

}
// webpack.config plugins
plugins: [

new CleanWebpackPlugin(['dist']),
new HtmlWebpackPlugin({
    template: "./index.html",
    inject: true,
    chunks: ['manifest', 'index', 'index2'],
    chunksSortMode: 'none'
})

]

你期待的结果是什么?实际看到的错误信息又是什么?

假设resources/js中有一个a.js且size超过了30kb,入口index.js和index2.js都import了这个a.js。那么在生成环境下预期的结果应该是生成index.[chunkhash].js、index2.[chunkhash].js、vendors.[chunkhash].js以及libs.[chunkhash].js以及manifest.[chunkhash].js,其中libs.[chunkhash].js应该就是打包后的resource/js/a.js。实际的情况是这些文件都正常生成了,但是打开浏览器发现manifest并没有生效,页面只加载了index.[chunkhash].js、index2.[chunkhash].js和manifest.[chunkhash].js,并没有加载vendors和libs。

不知道将manifest(runtimeChunks)直接注入HtmlWebpackPlugin的chunks这样有什么问题?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红衣飘飘貌似仙 2022-09-18 18:13:49

谢谢! 找了很久是什么原因 终于在这得到解答了

倾`听者〃 2022-09-18 18:13:49

在查阅了一天文献之后,终于找到了问题所在。以上我所描述的这些操作其实都没有问题,出问题的是HtmlWebpackPlugin这个插件,在webpack升级到webpack4之后,我的HtmlWebpackPlugin版本还停留在3,所以在webpack4下出了bug,将HtmlWebpackPlugin升级到4.0.0-alpha.2就可以了。参考https://github.com/jantimon/h...

图片描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文