npm 6.17.1安装pretty-checkbox出现UNMET PEER DEPENDENCY报错问题
问题成因
你使用的npm 6版本对peer依赖的校验逻辑较为严格,报错的核心原因是当前项目已安装的react@15.4.0版本,不满足依赖树中某一个或多个第三方包声明的peer依赖所需的React版本范围。安装pretty-checkbox、popper.js时的报错只是触发了npm的全量peer依赖校验,和这两个包本身没有直接关联。
你重装React没有效果是因为react@15.4.0本身已经在本地正确安装,重装无法解决版本范围不匹配的校验问题。
解决方法
方案1:跳过peer依赖校验(快速修复,适配老项目)
npm 6支持在安装依赖时添加参数跳过peer依赖校验,执行以下命令即可:
npm install pretty-checkbox --legacy-peer-deps
如果需要全局生效,可执行配置命令:
npm config set legacy-peer-deps true
说明:该方案不会影响项目正常运行,只要你实际用到的相关功能没有出现兼容性问题,即可正常使用。
方案2:排查并修复不兼容的依赖
执行以下命令打印完整依赖树的React依赖要求,定位到声明了更高版本React要求的依赖包:
npm ls react
根据查询结果针对性处理:
- 若该依赖存在适配React 15.x的历史版本,直接将其降级到对应版本即可
- 若该依赖已不再支持React 15.x,可选择替换为同功能的适配包,或升级项目的React版本
方案3:升级npm到7及以上版本
npm 7及以上版本优化了peer依赖的校验逻辑,也支持自动安装符合要求的peer依赖,升级后重装全部依赖即可解决问题:
# 升级npm到最新版本 npm install -g npm@latest # 删除现有依赖和锁文件 rm -rf node_modules package-lock.json # 重新安装全部依赖 npm install
注意:该方案可能引发其他老版本依赖的兼容性问题,操作前建议备份现有配置文件。
内容的提问来源于stack exchange,提问作者morne
相关产品推荐
相关产品推荐

