无法找到模块'nx/presets/npm.json'的问题求助
解决思路:Cannot find module 'nx/presets/npm.json'
可能原因排查
- 依赖缓存或文件损坏:未手动更新依赖也可能出现
node_modules中nx包文件缺失、缓存损坏的情况。 - nx版本与预设不匹配:更新nx的操作未同步到项目实际依赖版本,或当前nx版本根本不包含
nx/presets/npm.json这个预设文件(旧版nx的预设路径/命名可能不同)。 - nx.json配置异常:配置文件中的预设路径被意外篡改,或配置项本身存在错误。
具体解决步骤
清理依赖与缓存
- 删除项目根目录的
node_modules:rm -rf node_modules(Linux/macOS)或rmdir /s node_modules(Windows) - 清除包管理工具缓存:
npm cache clean --force(npm)或yarn cache clean(yarn) - 重新执行
lerna bootstrap,让依赖完整重装。
- 删除项目根目录的
核对nx版本与预设文件
- 查看项目实际依赖的nx版本:
npm list nx,然后直接检查node_modules/nx/presets目录下是否存在npm.json。 - 若当前版本无该预设,修改
nx.json中的preset字段为对应版本的正确预设路径(比如旧版nx可能用nx/presets/default.json)。 - 若必须使用
npm.json预设,安装匹配版本的nx:npm install nx@<对应版本> --save-dev。
- 查看项目实际依赖的nx版本:
检查nx.json配置
- 打开
nx.json,确认preset字段值是否为nx/presets/npm.json,可先注释该字段,执行lerna bootstrap测试是否能正常运行,再逐步调试。 - 检查配置中其他引用nx预设的地方,确认路径是否正确。
- 打开
排查lerna与nx兼容性
- 确认当前lerna版本与nx版本是否兼容,部分lerna版本对nx有特定版本要求,可尝试降级/升级lerna:
npm install lerna@<兼容版本> --save-dev
- 确认当前lerna版本与nx版本是否兼容,部分lerna版本对nx有特定版本要求,可尝试降级/升级lerna:
额外验证点
- 执行
npm ls nx查看所有子包的nx版本,避免子包依赖的nx版本与根项目冲突。 - 查看Git历史,确认
nx.json是否被意外修改,恢复到之前正常运行的配置版本测试。
内容的提问来源于stack exchange,提问作者william yohn
相关产品推荐
相关产品推荐

