如何修复npm ERR! peer dep missing对等依赖缺失报错
报错产生原因
peer依赖(对等依赖)是npm为插件类包设计的依赖规则:插件类包不会自带核心依赖包,而是要求宿主项目自行安装对应版本的核心依赖,避免同一个核心依赖被重复安装多份占用空间。
你看到的两个报错本质都是上层插件包要求的核心对等依赖在项目中不存在:
react-chartist@0.14.4要求项目安装版本为^0.10.1的chartist核心包,当前项目未安装符合要求的版本@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.15.4要求项目安装版本为^7.13.0的@babel/core核心包,当前项目未安装符合要求的版本
这类报错通常的触发场景包括:安装依赖时添加了--legacy-peer-deps参数跳过了对等依赖检查、npm版本升级后旧项目的依赖规则不兼容、手动删除核心依赖后没有同步卸载对应的插件包。
修复方法
可以根据你的实际需求选择以下任意一种方案:
方案1:补装缺失的对等依赖(最稳妥,推荐)
直接安装对应版本的缺失依赖即可,执行以下命令:
# 安装chartist依赖 npm install chartist@^0.10.1 # 安装babel核心依赖 npm install @babel/core@^7.13.0
安装完成后重新执行npm list --depth 0即可确认报错消失。
方案2:临时忽略对等依赖检查
如果当前项目运行正常,不需要用到相关插件的功能,也可以选择跳过对等依赖检查,不会影响现有功能运行:
- 单次执行npm命令时忽略:在命令末尾添加
--legacy-peer-deps参数即可 - 项目全局忽略:在项目根目录新建
.npmrc文件,添加以下内容:legacy-peer-deps=true
注意:该方案只是屏蔽了报错提示,并没有实际解决依赖缺失问题,如果后续用到相关插件功能时出现运行报错,还是需要补装对应的依赖
方案3:卸载触发报错的上层插件包
如果你完全不需要用到这两个插件的功能,可以直接卸载触发报错的上层包,从根源消除报错:
# 不需要react图表插件的话执行 npm uninstall react-chartist # 不需要对应babel补丁插件的话执行 npm uninstall @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining
内容的提问来源于stack exchange,提问作者Saad8113
相关产品推荐
相关产品推荐

