使用nx-migrate升级NX Monorepo时Angular库版本未更新
解决NX Monorepo升级时libs目录下Angular库版本未同步的问题
问题背景
从旧版Lerna多仓库迁移到NX Monorepo(基于Angular v12),执行nx migrate 13后,根目录package.json已更新至v13,但libs下各Angular库的package.json仍停留在v12版本。
解决方案
方案1:手动同步依赖版本(适合库数量少的场景)
- 打开每个库(如
libs/lib1、libs/lib2)的package.json - 将所有
@angular/*、rxjs、typescript等核心依赖的版本,修改为根目录package.json中对应的v13版本(同时更新dependencies和peerDependencies字段) - 示例:根目录
@angular/core为13.3.11,则将库中@angular/core的版本统一改为13.3.11
方案2:用NX命令批量同步(高效处理多库场景)
先确保已完成v13迁移的完整流程:
# 若之前只执行了nx migrate 13但未完成后续步骤 npm install nx migrate --run-migrations执行NX专门用于同步库依赖的命令:
nx g @nrwl/angular:update-libs该命令会自动将根目录
package.json中的Angular核心依赖版本同步到所有libs下的库中,覆盖其package.json里的对应版本。若上述命令无效,重新生成迁移配置并执行:
# 重新生成针对Angular v13的迁移任务 nx migrate @nrwl/angular@13 npm install nx migrate --run-migrations检查生成的
migrate.json,确认包含针对library的更新任务后再执行迁移。
额外注意事项
- 升级需按版本顺序逐步进行:v12 → v13 → v14 → v15 → v16,切勿跨版本直接升级,避免兼容问题
- 同步版本后,检查每个库的
tsconfig.json,确保compilerOptions.target、lib等配置符合Angular对应版本的要求(如v13建议target设为ES2020) - 根目录
angular.json中各库的builder、schematics配置需同步为对应版本
内容的提问来源于stack exchange,提问作者Mitesh
相关产品推荐
相关产品推荐

