Angular 12库ng build --watch无文件变更时每分钟重复构建问题
问题解决方案
1. 排查genversion自动执行问题
你配置的genversion脚本会自动生成/修改./libs/ui/src/lib/version-number/version-number.model.ts文件,若存在npm前置钩子(如preserve、prebuild)、定时任务、IDE插件自动执行该脚本,会直接触发watch构建。可先临时注释ver脚本,或将生成的版本文件添加到监听排除列表验证。
2. 修复依赖版本bug
你当前使用的@angular-devkit/build-angular@12.2.5、ng-packagr@12.2.1组合存在已知的watch模式异常轮询问题,将两个依赖升级到Angular 12对应的最新稳定版即可修复:
npm install @angular-devkit/build-angular@~12.2.18 ng-packagr@~12.2.7 --save-dev
3. 定位触发构建的具体文件
给watch命令添加--verbose参数,日志会打印每次触发构建的变更文件路径,可直接定位问题根源:
ng build library --watch --verbose
4. 校验监听范围配置
检查tsconfig.lib.json的include/exclude字段,确认没有将dist目录、日志文件、临时缓存文件这类自动变更的资源纳入监听范围。
5. 排除文件系统/外部进程影响
如果项目运行在WSL共享目录、网络挂载盘上,文件时间戳不同步会导致watch误判,建议将项目迁移到本地原生目录测试。同时可临时关闭IDE自动格式化、实时索引、杀毒软件实时扫描功能,排除外部进程修改文件的可能。
内容的提问来源于stack exchange,提问作者pa1_tja
相关产品推荐
相关产品推荐

