npm库安装失败:node_modules无对应目录,安装后仍报依赖缺失错误
问题解决方案
核心问题原因
- 全局安装的npm包默认不会同步到项目的
node_modules目录:npm -g install是安装到系统全局的npm依赖路径,只有项目本地执行不带-g参数的npm install命令,才会把依赖写入当前项目的node_modules目录 - 未执行项目依赖安装步骤:你直接拉取GitHub源码后,没有执行
npm install安装项目声明的全量依赖,仅单独全局安装单个包无法满足项目的依赖要求 - npm 6.x版本存在全局依赖校验bug:你执行
npm -g list报的missing: minipass@^2.6.0属于npm 6的已知全局依赖校验误差,和你项目本地的依赖缺失问题无关 - 你不需要执行
npm init:拉取的已有GitHub项目自带package.json文件的情况下,执行npm init属于冗余操作
具体解决步骤
- 进入项目根目录(先确认目录下存在
package.json文件),执行本地安装命令:
npm install minipass@2.6.0
如果安装过程中提示权限相关报错,添加--no-optional参数规避可选依赖的权限问题即可:
npm install minipass@2.6.0 --no-optional
- 若安装后仍有其他依赖缺失报错,直接执行全量依赖安装即可:
npm install
- 安装完成后验证
minipass是否存在于项目本地依赖:
ls .\node_modules\ | Select-String "minipass"
正常执行后输出结果会包含minipass目录。
注意事项
- 无管理员权限的情况下,不要随意使用
-g参数安装全局包,优先使用项目本地依赖即可满足运行要求 - 若执行
npm install过程中出现缓存相关报错,可先清理npm缓存后重试:
npm cache clean --force
内容的提问来源于stack exchange,提问作者Tim Glauner
相关产品推荐
相关产品推荐

