Angular 12仅做小型样式文案改动是否需要每次全量构建?
Angular 12 小变更无需全量构建的发布方案
方案1:开启Angular原生增量构建与持久化缓存
Angular 12 原生支持增量构建和持久化缓存能力,无需改造业务代码,仅需修改配置即可大幅降低小变更的构建耗时:
- 打开项目根目录的
angular.json文件,在projects.<你的项目名>.architect.build.options下新增配置:"incremental": true, "cache": { "enabled": true, "path": ".angular/cache" } - 后续执行
ng build时,Angular会自动对比文件变更,仅重新编译修改过的文件,无需全量走编译、打包、压缩流程,小变更的构建耗时通常可以降低70%以上。
方案2:静态资源单独发布(适配文案、图标类变更)
如果你的变更仅涉及文案、图标这类静态资源,可以直接跳过Angular构建流程:
- 提前将文案从组件硬编码中抽离,存放在
src/assets/i18n/下的独立JSON文件中,图标统一存放在src/assets/icons/目录 - 在
angular.json中配置这类静态资源打包时不生成content hash后缀,避免文件名随构建变化 - 变更后直接替换生产环境服务器对应目录下的资源文件即可生效,无需执行任何构建操作
注意:替换后需要更新CDN缓存或者给资源链接加临时版本参数,避免用户浏览器加载旧缓存资源。
方案3:模块联邦拆分(适配中大型应用)
如果你的应用体积较大、迭代频率高,可以基于Webpack 5的模块联邦能力做微前端拆分:
- 将应用按业务模块拆分为多个独立子应用,每个子应用支持单独构建、单独发布
- 仅修改某个子模块的内容时,只需构建对应子应用,无需处理主应用和其他业务模块,构建耗时仅和单个子模块的体积相关。
方案4:自定义差异化构建脚本
可以基于Git Diff能力编写自定义构建脚本,自动判断变更范围:
- 如果仅修改
assets目录下的资源,直接走静态资源打包上传流程 - 如果仅修改单个业务模块的代码,调用Angular的局部编译API仅构建对应模块
- 全量变更时才走完整构建流程
内容的提问来源于stack exchange,提问作者paulatrockhill
相关产品推荐
相关产品推荐

