Netlify部署遇npm依赖冲突:react-otp-input与react版本不兼容
React依赖冲突问题解决
问题详情
使用npm 8.19.3安装依赖时触发ERESOLVE错误,核心冲突如下:
- 项目当前使用React 18.2.0,且
@testing-library/react@13.4.0、formik等多个依赖均要求React 18.x版本 - 待安装的
react-otp-input@2.4.0的peer依赖仅支持React^16.2.0,与现有React版本不兼容,导致依赖解析失败,最终构建脚本返回非零退出码1。
解决方案
方案1:升级react-otp-input到兼容React 18的版本
安装react-otp-input的最新稳定版(通常已兼容React 18):
npm install react-otp-input@latest
可先查看该包的官方版本说明,确认其peer依赖已支持React 18后再执行安装。
方案2:使用npm参数绕过peer依赖检查
若暂时无法升级react-otp-input,可通过以下命令强制完成安装:
- 推荐采用
--legacy-peer-deps(沿用npm v6的依赖解析逻辑,风险较低):
npm install --legacy-peer-deps
- 或使用
--force(强制忽略冲突,可能引入潜在兼容性问题):
npm install --force
方案3:降级React到16.x版本(不推荐)
若项目允许调整React版本,可将React改为^16.14.0,但此操作会导致@testing-library/react@13.4.0等依赖出现不兼容,需同步降级相关依赖,因此不建议采用。
内容的提问来源于stack exchange,提问作者David O. Atanda
相关产品推荐
相关产品推荐

