问题描述
我刚刚从 webpack 4.x 迁移到 5.x,因此也将 html-webpack-plugin 从 3.x 更新到 5.x。我(出于某种原因)每个页面有多个条目,它们共享公共块,例如运行时块和供应商块。 使用下面显示的配置,生成的 common.html 仅包含运行时块以及来自相应缓存组的供应商块。从入口点生成的 html 文件仅包含包,但不包含运行时和供应商块。 迁移到 webpack 5 和 html-webpack-plugin 5.x 后,common.html 不包含任何内容,入口点的 html 文件都包含运行时和供应商块以及包。
新行为与webpack更新还是html-webpack-plugin的更新有关? 我该怎么做才能收到前一个结果,这意味着只有运行时和供应商在 common.html 中分开,并且只有捆绑包,但条目 html 文件中没有共享文件?
我已经在谷歌上搜索了我的屁股并尝试了以下配置的无数变体,但没有成功。我的想法不多了,所以任何帮助表示赞赏。谢谢各位!
我的 webpack 配置:
module.exports = {
entry: {
first: './first.js',second: './second.js',},output: {
path: path.join(__dirname,'dist/js'),filename: '[name].[contenthash].js',publicPath: ''
},optimization: {
runtimeChunk: "single",splitChunks: {
cacheGroups: {
default: false,defaultvendors: false,vendor: {
test: /[\\/]node_modules[\\/]/,name: 'vendors',chunks: 'all',enforce: true,maxSize: maxChunkSize * 1024,minChunks: 2
},}
}
},plugins: [
new packages.htmlWebpackPlugin({
template: 'template.html',filename: 'common.html',excludeChunks: ['first','second'],inject: false,}),new packages.htmlWebpackPlugin({
template: 'template.html',filename: 'first.html',chunks: ['first'],filename: 'second.html',chunks: ['second'],]
};
我的环境:
- Node.js v16.1.0
- 达尔文 20.4.0
- npm 7.12.1
- webpack@5.37.0
- html-webpack-plugin@5.3.1
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)