如何移动NX库而不触发「找不到projects.json」错误?
nx move命令提示找不到projects.json的问题 核对命令语法与项目标识符
nx move针对NX项目名称而非文件夹路径操作,比如你的库在libs/ui-components/button,项目名称可能是ui-components-button或带scope的@yourorg/ui-components-button,而非直接写文件夹路径。错误示例:nx move libs/old-lib libs/new-lib,正确示例:nx move @yourorg/old-lib @yourorg/new-lib或nx move old-lib new-lib(取决于你的项目命名规则)。检查配置文件名的正确性
NX默认使用单数的project.json作为单个项目的配置文件,而非projects.json(复数)。如果你确实存在projects.json,需要确认它是否位于目标库的根目录下(比如libs/your-library/projects.json),而非工作区根目录。若为拼写错误,将文件名改为project.json后重试。清空NX缓存
NX会缓存项目配置信息,可能出现文件存在但缓存未同步的情况。执行以下命令重置缓存:nx reset缓存清空后重新执行
nx move命令。确认NX版本与命令兼容性
不同NX版本的move命令存在差异:- NX 14及更早版本没有独立的
nx move命令,需使用生成器语法:nx generate move <source> <target> - 若使用旧版本,建议升级到稳定LTS版本(执行
nx migrate latest完成升级),再尝试命令。
- NX 14及更早版本没有独立的
验证项目在NX配置中的注册状态
打开工作区根目录的nx.json,检查projects数组中是否包含你要移动的库的项目名称。若未找到,说明项目未被NX正确注册,可执行nx add <library-name>重新注册,或手动添加项目路径到nx.json的projects字段中。指定自定义配置文件路径(如果适用)
若你确实使用自定义的projects.json而非默认配置,可通过--project-config-path参数指定文件路径:nx move <source-project> <target-project> --project-config-path=libs/old-lib/projects.json
内容的提问来源于stack exchange,提问作者R0M3

