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

如何将无project.json的旧Nx工作区Lib迁移至新版Nx工作区

旧版Nx Lib迁移至新版Nx工作区的解决方案

问题原因

旧版Nx(尤其是早期基于Angular CLI + Nx的版本)创建的Lib,是通过Angular原生命令生成的,这类Lib不会被Nx工作区自动纳入配置体系,所以convert-to-nx-project命令无法识别到对应的Lib配置。

手动迁移步骤

1. 手动创建project.json配置文件

在你的Lib根目录(如libs/my-lib/)下新建project.json,参考以下模板修改适配你的Lib:

{
  "name": "my-lib",
  "$schema": "../../node_modules/nx/schemas/project-schema.json",
  "sourceRoot": "libs/my-lib/src",
  "projectType": "library",
  "targets": {
    "build": {
      "executor": "@nrwl/angular:package",
      "options": {
        "project": "libs/my-lib/ng-package.json"
      },
      "configurations": {
        "production": {
          "tsConfig": "libs/my-lib/tsconfig.lib.prod.json"
        },
        "development": {
          "tsConfig": "libs/my-lib/tsconfig.lib.json"
        }
      },
      "defaultConfiguration": "production"
    },
    "test": {
      "executor": "@nrwl/jest:jest",
      "outputs": ["{workspaceRoot}/coverage/libs/my-lib"],
      "options": {
        "jestConfig": "libs/my-lib/jest.config.ts",
        "passWithNoTests": true
      }
    },
    "lint": {
      "executor": "@nrwl/linter:eslint",
      "options": {
        "lintFilePatterns": ["libs/my-lib/**/*.ts", "libs/my-lib/**/*.html"]
      }
    }
  },
  "tags": []
}
  • 把所有my-lib替换为你的Lib实际名称
  • 根据Lib的实际构建需求调整targets内的配置(比如使用其他构建工具时,替换对应的executor)

2. 更新根目录nx.json(可选但推荐)

打开工作区根目录的nx.json,在projects节点下添加你的Lib配置:

{
  "projects": {
    "my-lib": {
      "tags": []
    }
  }
}

3. 验证迁移结果

执行以下命令确认Lib已被识别:

nx show project my-lib

如果能正常输出Lib的配置信息,说明识别成功,之后即可使用nx build my-lib等Nx命令操作该Lib。

4. 清理旧配置(可选)

确认迁移后功能正常,可逐步移除Lib目录下的ng-package.json和package.json,避免配置冲突。


内容的提问来源于stack exchange,提问作者smartmouse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:30:41