webpack编写可维护的构建配置

本文介绍构建配置抽离为npm包的设计思路及实现方案,包括不同环境的配置管理、使用webpack-merge进行配置合并的方法,以及如何确保代码质量和维护性的最佳实践。

1、构建配置抽离成 npm 包的意义
通用性
·业务开发者无需关注构建配置
·统一团队构建脚本
可维护性
·构建配置合理的拆分
·README 文档、ChangeLog 文档等
质量
·冒烟测试、单元测试、测试覆盖率 
·持续集成
2、构建配置管理的可选方案
1通过多个配置文件管理不同环境的构建,webpack --config 参数进行控制
2将构建配置设计成一个库,比如:hjs-webpack、Neutrino、webpack-blocks
3抽成一个工具进行管理,比如:create-react-app, kyt, nwb
4将所有的配置放在一个文件,通过 --env 参数控制分支选择
3、构建配置包设计
通过多个配置文件管理不同环境的 webpack 配置
·基础配置:webpack.base.js
·开发环境:webpack.dev.js 
·生产环境:webpack.prod.js 
·SSR环境:webpack.ssr.js
抽离成一个 npm 包统一管理
·规范:Git commit日志、README、ESLint 规范、Semver 规范
·质量:冒烟测试、单元测试、测试覆盖率和 CI

4、通过 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);

5、目录结构设计
lib 放置源代码
test 放置测试代码
+ |- /test 
+ |- /lib 
+ |- webpack.dev.js 
+ |- webpack.prod.js
+ |- webpack.ssr.js 
+ |- webpack.base.js 
+ |- README.md 
+ |- CHANGELOG.md 
+ |- .eslinrc.js 
+ |- package.json 
+ |- index.js

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值