解决Chakra UI依赖树解析失败(ERESOLVE)问题
解决Chakra UI与React 16的依赖冲突(ERESOLVE错误)
错误根源
你的项目依赖React 16.14.0,但@chakra-ui/checkbox@^1.0.0的版本范围会自动拉取最新兼容子依赖@chakra-ui/system@2.3.0,而该版本要求React版本>=18,直接导致依赖树解析冲突。
解决方案
方案1:锁定Chakra UI组件到React 16兼容版本(推荐)
你当前使用的@chakra-ui/react@1.8.7属于Chakra UI v1系列,完全兼容React 16+。只需将所有@chakra-ui开头的组件版本统一锁定到v1范围,避免自动升级到要求React 18的v2版本:
- 修改
package.json中的依赖:
"dependencies": { "@chakra-ui/checkbox": "^1.8.7", "@chakra-ui/icons": "^1.8.7", "@chakra-ui/react": "^1.8.7", // 其他依赖保持不变 }
注:可以直接匹配@chakra-ui/react的版本号,确保所有组件版本统一
- 清理旧依赖并重新安装:
rm -rf node_modules package-lock.json npm install
方案2:临时绕过Peer依赖检查(紧急临时方案)
如果暂时无法调整版本,可以用npm参数强制跳过依赖冲突检查:
npm install --legacy-peer-deps
注意:此方法可能引发运行时未知问题,仅作为临时应急手段
方案3:升级React到18.x(彻底解决,但需评估兼容性)
若项目允许升级React,可直接将React版本更新到18.x,从根源消除依赖要求差异:
- 修改
package.json中的React相关依赖:
"react": "^18.2.0", "react-dom": "^18.2.0"
- 检查其他依赖兼容性:
react-leaflet@4.0.0已兼容React 18react-router-dom@5.x建议升级到^6.0.0以适配React 18react-scripts@5.0.0原生支持React 18
- 清理旧依赖并重新安装:
rm -rf node_modules package-lock.json npm install
额外优化
你的依赖中存在冗余的chakra-ui@^0.3.9(旧版包),建议直接删除,避免与正式@chakra-ui/react版本产生冲突。
内容的提问来源于stack exchange,提问作者timjini
相关产品推荐
相关产品推荐

