用途:nx import 将源仓库或文件夹的代码带入当前工作区,并保留提交历史,用于把项目迁入 Nx monorepo。
主要能力与用法:可子目录逐个导入(nx import <source> apps --source=apps,适合 monorepo 源),也可整仓导入(nx import <source> imported --source=.,仅适合单项目仓库)。导入前目标目录必须为空;目标已有 libs/utils 等目录时不能直接把源 libs/ 导入 libs/,需按库分别导入。目标目录已有约定时优先沿用目标约定;空工作区无约定时应询问用户。应用放 apps/<name>,库按目标既有约定放置。可用 nx import --help 查看选项。
限制与注意事项(资料明确列出):导入不会合并源根目录的依赖与配置,包括 package.json 依赖、nx.json 的 targetDefaults、namedInputs 和插件配置,需手工 diff 合并。子目录导入不自动检测插件,需 npx nx add @nx/PLUGIN;插件配置改动后运行 npx nx reset。pnpm 工作区 glob 可能被写成目录本身导致跨包导入失败,需改为 apps/、libs/shared/ 等并重装。TypeScript 项目引用需 nx sync --yes,必要时先 nx reset。ESLint 需固定 v9,必要时用 pnpm.overrides。前端项目 tsconfig.base.json 的 moduleResolution、module、lib、jsx 需按框架调整。整仓导入会带入过期的 node_modules、lockfile、pnpm-workspace.yaml、.gitignore、nx.json 等,需清理。项目重名会报 MultipleProjectsWithSameNameError。其他具体技术问题参见其 ESLint、Gradle、Jest、Next、Turborepo、Vite 参考文件。