webpack 多入口打包需三步:entry 改为对象语法定义多个键值对入口,output.filename 含 [name] 占位符且 path 为绝对路径,每个入口配独立 htmlwebpackplugin 实例并指定 chunks。

Webpack 实现多入口打包,关键在于把 entry 从单个路径改成对象形式,并让 output.filename 使用 [name] 占位符匹配入口名,同时确保 output.path 是绝对路径——这三者配合才能正确生成多个独立 JS 文件并精准落盘。
entry 必须用对象语法定义多个入口
单页应用用字符串就够了,但多页(MPA)必须写成键值对:
- 键(如
index、admin)会成为最终 JS 文件名前缀,也用于 HTML 插件中指定引入哪些 chunk - 值是对应页面的主 JS 路径,支持相对路径或动态生成(比如用
glob.sync()扫描src/pages/*/index.js) - 避免数组写法(如
entry: ['./a.js', './b.js']),它只生成一个 bundle,不满足“多入口多输出”需求
output 要用 [name] 控制文件名并设绝对路径
output.path 必须是 Node.js 的绝对路径,output.filename 必须含 [name],否则所有入口会覆盖写入同一个文件:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 推荐写法:
filename: '[name].[contenthash:8].js',既区分文件又带内容哈希防缓存 -
path: path.resolve(__dirname, 'dist')是标准写法,__dirname保证跨平台兼容 - 不要写
path: './dist'或path: 'dist',Webpack 会报错
每个入口配一个 HtmlWebpackPlugin 实例
Webpack 只管 JS 打包,HTML 文件得靠插件生成。多入口必须为每个页面单独 new 一次 HtmlWebpackPlugin:
- 用
chunks: ['index']精确控制该 HTML 只引入对应入口的 JS,避免混入其他页面代码 - 用
filename: 'index.html'指定输出 HTML 名,和入口名保持语义一致 - 可配合
template选项复用同一份 HTML 模板,只换 JS 引入列表
公共代码提取与路径一致性检查
多个入口共用 React、Lodash 等依赖时,不提取会导致重复打包:
- 启用
optimization.splitChunks,设chunks: 'all'自动提取公共模块 - 检查所有入口路径是否真实存在,Webpack 不报错但会静默跳过缺失路径
- 开发时若用
devServer.historyApiFallback,建议设为true或配置rewrites,防止子页面刷新 404
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










