NX+Capacitor执行cap:sync时出现模块找不到错误求助
解决NX 14 + @nxtend/capacitor 找不到'nx/src/utils/app-root'的问题
问题原因
从调用栈可判断,@nxtend/capacitor依赖的@nrwl/devkit版本与项目使用的NX 14不兼容,导致它尝试导入的nx/src/utils/app-root模块路径在当前NX版本中不存在或已变更。
解决方案
1. 清理并重新安装依赖
- 删除项目根目录下的
node_modules文件夹:rm -rf node_modules - 删除锁文件(
package-lock.json或yarn.lock):rm package-lock.json yarn.lock - 重新安装所有依赖:
npm install
2. 匹配@nxtend/capacitor与NX 14的版本
@nxtend/capacitor版本需与NX版本对应,NX 14应使用@nxtend/capacitor的v14.x.x版本:
npm install @nxtend/capacitor@14.0.0 --save-dev
3. 合并重复依赖
调用栈显示@nxtend/capacitor内部嵌套了独立的@nrwl/devkit,引发版本冲突。执行依赖去重命令:
npm dedupe
若使用Yarn:
yarn dedupe
4. 临时修复模块路径(仅应急)
如果以上方法无效,可临时修改依赖中的导入路径:
- 打开
node_modules/@nxtend/capacitor/node_modules/@nrwl/devkit/index.js - 找到第182行的
require('nx/src/utils/app-root'),替换为NX 14中存在的对应路径,例如:require('@nrwl/workspace/src/utils/app-root')
注意:该修改会在重新安装依赖后失效,仅作临时解决手段。
内容的提问来源于stack exchange,提问作者Yannick Desjardins
相关产品推荐
相关产品推荐

