Angular CLI 15.2执行ng build生成旧版本项目求助
针对你遇到的同一分支下ng serve正常但ng build生成旧版本的问题,结合Angular CLI 15.2的特性,按以下步骤排查:
强制禁用构建缓存
Angular CLI 15默认启用构建缓存提升速度,缓存可能保留了旧构建结果。执行:ng build --no-cache或者手动删除缓存目录:
node_modules/.angular/cache,再重新构建。确认构建环境配置
默认ng build会使用生产环境(production)配置,如果你在开发环境的environment.ts里加了新功能,但生产环境environment.prod.ts未同步,或者用了环境相关的条件编译(比如*ngIf="!environment.production"),会导致生产构建看不到新内容。试试构建开发环境:ng build --configuration development同时检查
src/environments下的两个环境文件,确保新功能相关配置同步。手动清理dist目录
偶尔CLI可能未正确清理旧的dist文件,先手动删除整个dist文件夹,再执行ng build。另外检查angular.json中projects -> [你的项目名] -> architect -> build -> options -> outputPath,确认构建输出路径是你预期的dist目录,避免构建到其他未注意的文件夹。验证Git分支与代码状态
执行git branch确认当前所在分支是否为你开发新功能的分支,git status检查是否有未提交的修改(虽然ng serve读取本地文件,但如果有Git钩子或自定义构建脚本依赖提交状态,可能影响构建)。如果合并功能分支到main失败,可重新执行git merge [功能分支名],解决冲突后再构建。检查依赖与Angular CLI状态
尝试删除node_modules和package-lock.json(或yarn.lock),重新执行npm install,确保依赖无冲突。同时确认Angular CLI版本一致:ng version避免全局CLI和项目本地CLI版本不一致导致的构建问题。
内容的提问来源于stack exchange,提问作者diegosg

