You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用两个HtmlWebpackPlugin实例分别引入对应入口脚本?

解决方案:给每个HtmlWebpackPlugin指定专属chunk

当然可以实现每个模板只引入对应的入口脚本!问题出在你没有给每个HtmlWebpackPlugin实例指定要关联的chunk,默认情况下插件会把所有生成的脚本都引入到模板里。只需要添加chunks配置项就能轻松解决这个问题。

具体配置修改

你只需要在每个HtmlWebpackPlugin的配置对象里,添加chunks数组,明确指定该模板要包含的入口chunk名称:

entry: {
  app: 'src/client/app.js',
  unauthApp: 'src/client/unauth.js'
},
output: {
  path: 'dist',
  filename: 'scripts/[name]-[chunkhash].js'
},
plugins: [
  new HtmlWebpackPlugin({
    filename: 'views/index.html',
    // 指定只引入app对应的chunk
    chunks: ['app']
  }),
  new HtmlWebpackPlugin({
    filename: 'views/index-unauth.html',
    // 指定只引入unauthApp对应的chunk
    chunks: ['unauthApp']
  })
]

额外说明

如果你的项目里还有公共chunk(比如通过splitChunks提取的vendor代码),想要在对应的模板里同时引入公共chunk,只需要把公共chunk的名字加入到chunks数组里即可。比如:

chunks: ['vendor', 'app']

这样配置后,index.html就只会引入app-[chunkhash].js,而index-unauth.html只会引入unauthApp-[chunkhash].js,完美解决你的问题!

内容的提问来源于stack exchange,提问作者1252748

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:50:54