Angular从12升级到16遇依赖更新异常求助
Angular 12→16升级卡顿解决方案
1. 对齐CLI与核心版本
当前CLI(16)与核心(13)版本不匹配会导致ng update逻辑混乱,先将CLI回退到与核心一致的13.4.0版本:
- 全局卸载旧CLI:
npm uninstall -g @angular/cli - 安装13.4.0全局CLI:
npm install -g @angular/cli@13.4.0 - 本地项目安装对应CLI:
npm install @angular/cli@13.4.0 --save-dev
2. 统一所有Angular依赖版本
检查package.json中所有@angular/前缀的包(如@angular/common、@angular/compiler、@angular/platform-browser、@angular/router等),确保版本全部为13.4.0,同时@angular-devkit/build-angular也需设置为13.4.0版本。
3. 彻底清理依赖缓存
- 删除
node_modules文件夹 - 删除
package-lock.json文件 - 清理npm缓存:
npm cache clean --force - 重新安装依赖:
npm install
4. 排查冲突依赖
执行npm ls @angular/core,查看是否存在子依赖版本不一致的情况。若有,在package.json中添加overrides字段强制统一版本:
"overrides": { "@angular/core": "13.4.0" }
添加后重新执行npm install。
5. 按大版本逐步升级
Angular不建议跨多个大版本升级,需依次执行以下命令:
- 升级到14:
ng update @angular/core@14 @angular/cli@14 - 升级到15:
ng update @angular/core@15 @angular/cli@15 - 升级到16:
ng update @angular/core@16 @angular/cli@16
每一步升级完成后,先确认项目能正常编译运行,再进行下一步。
6. 安装three.js
升级到Angular 16后,再安装/升级three.js:npm install three
内容的提问来源于stack exchange,提问作者Thomas Williams
相关产品推荐
相关产品推荐

