Webpack教程系列(三):Webpack入口与出口配置详解

Webpack教程系列(三):Webpack入口与出口配置详解
YuXiang1. 入口(Entry)配置
入口是 Webpack 开始构建依赖图的起点。Webpack 会从入口文件开始,递归地分析所有依赖的模块。
1.1 单入口配置
最简单的配置方式是单入口,适用于小型项目或单页面应用(SPA)。
1 | module.exports = { |
1.2 多入口配置
对于多页面应用(MPA)或需要拆分包的场景,可以使用多入口配置。
1 | module.exports = { |
- **
[name]
**:占位符,表示入口的名称(如app
或admin
)。 - 打包后会生成两个文件:
app.bundle.js
和admin.bundle.js
。
2. 出口(Output)配置
出口配置用于指定打包后文件的输出位置和命名规则。
2.1 基本配置
1 | module.exports = { |
2.2 动态文件名
通过占位符动态生成文件名,常用的占位符有:
- **
[name]
**:入口名称。 - **
[hash]
**:构建的哈希值(每次构建都会变化)。 - **
[chunkhash]
**:模块的哈希值(仅当模块内容变化时变化)。 - **
[contenthash]
**:文件内容的哈希值(推荐用于生产环境)。
1 | module.exports = { |
2.3 公共路径(publicPath)
publicPath
用于指定资源文件的公共路径,通常用于 CDN 或静态资源服务器。
1 | module.exports = { |
3. 多入口与多出口示例
以下是一个多入口与多出口的完整示例:
3.1 项目结构
1 | webpack-demo/ |
3.2 配置文件
1 | const path = require('path'); |
3.3 打包结果
运行 npx webpack
后,dist
目录下会生成以下文件:
app.[contenthash].js
admin.[contenthash].js
4. 常见问题与解决方案
4.1 如何清理旧的打包文件?
每次打包时,旧的打包文件可能会残留。可以使用 clean-webpack-plugin
插件自动清理 dist
目录。
1 | npm install clean-webpack-plugin --save-dev |
配置:
1 | const { CleanWebpackPlugin } = require('clean-webpack-plugin'); |
4.2 如何拆分公共代码?
如果多个入口文件依赖相同的模块,可以使用 SplitChunksPlugin
将公共代码提取到单独的文件中。
1 | module.exports = { |
5. 总结
本文详细介绍了 Webpack 的入口与出口配置,包括单入口、多入口、动态文件名、公共路径等内容。通过合理的配置,我们可以更好地管理项目的打包输出。
在下一篇文章中,我们将深入探讨 Loader 的概念和用法,学习如何处理非 JavaScript 资源(如 CSS、图片等)。
预告:
- 下一篇:Webpack Loader 详解:处理 CSS、图片等资源