You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React依赖降级异常:从18降至17.0.2遇npm peer依赖冲突

问题原因

你把react和react-dom降级到17.0.2,但项目里当前的@testing-library/react@13.4.0是为React 18设计的版本——它的peer依赖明确要求react@^18.0.0和react-dom@^18.0.0。npm在解析依赖时会严格校验peer依赖的版本匹配性,所以会抛出冲突警告。

create-react-app创建React 18项目时,会自动安装适配React 18的测试库版本。你只降级了核心的react/react-dom,却没有同步调整@testing-library/react的版本,这就是问题的核心。哪怕删除node_modules和package-lock.json,npm重新安装时还是会按照package.json里指定的@testing-library/react版本拉取依赖,自然会和你设置的17.x版本的react/react-dom产生冲突。

解决方法
  • 打开项目的package.json,找到@testing-library/react,将版本改为适配React 17的稳定版本,比如^12.1.5(这是支持React 17的最后一个大版本)
  • 同步检查其他测试相关依赖:@testing-library/jest-dom可以用^5.16.5,@testing-library/user-event用^13.5.0,这些版本都和React 17兼容
  • 执行命令删除旧依赖和锁文件:
    # macOS/Linux
    rm -rf node_modules package-lock.json
    # Windows
    rmdir /s /q node_modules && del package-lock.json
    
  • 最后运行npm install,此时所有依赖版本匹配,peer依赖冲突警告会消失

内容的提问来源于stack exchange,提问作者SwedishFish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:32:47