You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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命令批量同步(高效处理多库场景)

  1. 先确保已完成v13迁移的完整流程:

    # 若之前只执行了nx migrate 13但未完成后续步骤
    npm install
    nx migrate --run-migrations
    
  2. 执行NX专门用于同步库依赖的命令:

    nx g @nrwl/angular:update-libs
    

    该命令会自动将根目录package.json中的Angular核心依赖版本同步到所有libs下的库中,覆盖其package.json里的对应版本。

  3. 若上述命令无效,重新生成迁移配置并执行:

    # 重新生成针对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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:42:15