编写可维护的webpack构建配置
样式增强、资源内联、多页面打包、分包、动态import、打包组件、server render等,如何把之前的webpack的用法做的更加通用,让其他业务项目能用上。
构建配置抽离成npm包的意义
通用性
- 业务开发者无需关注构建配置
- 统一团队构建脚本
可维护性
- 构建配置合理的拆分
- README文档、ChangeLog文档等
质量
- 冒烟测试、单元测试、测试覆盖率
- 持续集成
构建配置管理的可选方案
- 通过多个配置文件管理不同环境的构建,webpack --config参数进行控制
- 将构建配置设计成一个库,比如:hjs-webpack、Neutrino、wbepac-blocks
- 抽成一个工具进行管理:create-react-app,kyt、nwb
- 将所有的配置文件放在一个文件,用过--env参数控制分支选择
构建配置包设计
首先,通过多个配置文件管理不同环境的webpack配置(便于拓展)
- 基础配置:webpack.base.js
- 开发环境:webpack.dev.js
- 生产环境:webpack.prod.js
- SSR环境:webpack.ssr.js
- ...
然后,抽离成一个npm包统一管理
- 规范:Git commit日志、README、ESLint规范、Semver规范
- 质量:冒烟测试、单元测试、测试覆盖率和CI
通过webpack-merge组合配置
merge = require('webpack-merge')
merge({a:[1], b: 5, c: 20},{a:[2], b: 10, d: 421})
{a:[1,2], b: 10, c: 20, d: 421} // 数组会合并,其他会覆盖
合并配置:module.exports = merge(baseConfig, devConfig)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。