React项目中@types/react与@testing-library/react-hooks的npm依赖冲突
npm ERESOLVE 依赖冲突问题解析
冲突本质
不是@testing-library/react-hooks@8.0.1同时要求两个版本的@types/react,而是版本范围不兼容:
@testing-library/react-hooks@8.0.1的peer依赖明确要求@types/react必须是^16.9.0 || ^17.0.0(即16.9以上或17.x版本)- 你的项目中,其他依赖(比如
react-redux@8.0.5、@testing-library/react@14.0.0)已经引入了@types/react@18.2.18,这个版本不在react-hooks要求的范围内,导致npm无法找到同时满足所有依赖的版本。
错误日志核心逻辑:
检测到项目已存在
@types/react@18.2.18,但@testing-library/react-hooks@8.0.1仅支持16.9+或17.x的@types/react,两者版本范围无交集,因此触发依赖解析失败。
解决方案
方案1:升级@testing-library/react-hooks到支持React 18的版本
@testing-library/react-hooks后续版本已适配React 18,直接升级到最新版即可:
npm install @testing-library/react-hooks@latest --save-dev
方案2:降级@types/react到17.x版本
如果不想升级测试库,可手动安装符合react-hooks要求的类型包版本:
npm install @types/react@17.0.62 @types/react-dom@17.0.20 --save-dev
方案3:临时绕过peer依赖检查(不推荐长期使用)
若仅需临时完成依赖安装,可通过--legacy-peer-deps跳过冲突检查:
npm install --legacy-peer-deps
内容的提问来源于stack exchange,提问作者alfredopacino
相关产品推荐
相关产品推荐

