NX工作区升级Angular17至18时遇@angular-devkit/build-angular版本冲突
NX工作区Angular 17升级到18的依赖冲突解决
问题描述
在NX工作区将Angular 17升级至Angular 18过程中,执行npm install时出现以下依赖冲突错误:
Found: @angular-devkit/build-angular@17.1.3 node_modules/@angular-devkit/build-angular dev @angular-devkit/build-angular@"18.0.2" from the root project peer @angular-devkit/build-angular@">= 15.0.0 < 18.0.0" from @nx/angular@18.0.3 node_modules/@nx/angular @nx/angular@"19.1.2" from the root project @nx/angular@"18.0.3" from @nrwl/angular@18.0.3 node_modules/@nrwl/angular @nrwl/angular@"18.0.3" from @nx/angular@18.0.3 peer @angular-devkit/build-angular@">=13.0.0 <18.0.0" from jest-preset-angular@13.1.6 node_modules/jest-preset-angular dev jest-preset-angular@"14.1.0" from the root project
执行的操作步骤
- 全局更新Angular CLI:
npm install -g @angular/cli@latest - 执行NX迁移命令:
npx nx migrate latest - 运行
npm install时触发上述错误
解决步骤
统一NX版本并适配Angular 18
错误显示@nx/angular存在19.1.2和18.0.3两个版本,其中旧版本的@nx/angular限制了@angular-devkit/build-angular的版本低于18。需迁移到完全兼容Angular 18的NX版本:- 执行命令:
npx nx migrate @nx/angular@latest - 应用迁移变更:
npm install
- 执行命令:
升级jest-preset-angular到兼容版本
当前jest-preset-angular@13.1.6不支持Angular 18,需升级到最新版(14.2.0+已适配Angular 18):- 执行命令:
npm install jest-preset-angular@latest --save-dev
- 执行命令:
强制锁定依赖版本(可选)
如果仍有冲突,可在package.json中添加resolutions字段统一依赖版本(npm需配合npm-force-resolutions工具,或直接使用pnpm/yarn的overrides):"resolutions": { "@angular-devkit/build-angular": "18.0.2", "@nx/angular": "19.1.2" }添加后重新执行
npm install
内容的提问来源于stack exchange,提问作者Alireza Ahmadi
相关产品推荐
相关产品推荐

