从Angular11升级至Angular12后Docker环境下重新编译速度极慢问题求助
Angular 12升级后Docker容器内增量编译变慢排查方案
1. Angular 12 默认配置变更校验
- 核对
angular.json开发环境配置:Angular 12 版本默认开启开发环境AOT编译,相比Angular 11默认的JIT模式增量编译开销大幅提升,可手动将开发构建配置下的aot、buildOptimizer设为false,调整sourceMap为仅输出必要的代码映射,验证编译速度是否恢复 - 校验严格模式相关配置:若升级过程中开启了Angular全量严格校验,增量编译阶段会同步执行全量类型检查,可临时关闭
angularCompilerOptions下的fullTemplateTypeCheck、strictInjectionParameters等校验项,验证性能变化
2. WSL2 挂载性能优化
- 调整代码存储路径:若当前项目代码存放在Windows本地盘符(路径形如
/mnt/c/xxx),再通过挂载方式映射到Docker容器,WSL2跨操作系统文件系统的IO性能瓶颈会被Angular 12 更大的编译文件读写量放大。可将代码迁移到WSL2发行版原生文件系统中再执行挂载 - 优化挂载目录配置:取消
node_modules目录的本地挂载,改为在容器镜像构建阶段单独安装依赖,仅挂载业务源码目录,减少跨文件系统的IO开销 - 调整监听轮询参数:当前启动命令中
--poll 100的100ms轮询间隔会产生大量高频文件IO请求,Angular 12的文件监听逻辑有变更,可将参数调整为--poll 1000验证编译速度变化
3. 依赖兼容性校验
- 确认
@angular-devkit/build-angular版本与Angular核心框架版本完全匹配,跨版本依赖不兼容会导致编译流程异常拖慢速度 - 清理升级过程中新增的未使用开发依赖,避免构建工具加载不必要的扩展插件
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

