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

React Native依赖冲突解决:替代--legacy-peer-deps的方案

解决@react-native-community/cli安装时的依赖冲突问题

核心冲突分析

遇到的问题分为两类:

  1. React版本冲突:项目使用React 18.1.0,但@aws-amplify/ui-react@2.20.0依赖的旧版@radix-ui/*包(如@radix-ui/react-accordion@0.1.6等)仅支持React 16.8或17.x,不兼容React 18。
  2. ESLint版本冲突:项目中的ESLint为7.32.0,但@react-native-community/eslint-config@3.2.0要求ESLint版本必须≥8.x。

彻底解决步骤

一、修复React与Radix UI的兼容问题

旧版Radix UI不支持React 18,但新版@aws-amplify/ui-react已适配React 18,直接升级即可:

  • 先查看@aws-amplify/ui-react的最新版本:
    npm show @aws-amplify/ui-react versions --json | grep -E '"[0-9]+\.[0-9]+\.[0-9]+"' | tail -10
    
  • 升级到支持React 18的版本(推荐直接更新到最新3.x版本):
    npm install @aws-amplify/ui-react@latest
    
    若不想跨大版本,可选择2.x系列中支持React 18的补丁版(如2.30.0及以后版本):
    npm install @aws-amplify/ui-react@^2.30.0
    

二、解决ESLint版本不匹配问题

@react-native-community/eslint-config@3.x必须搭配ESLint 8+使用,需同步升级相关依赖:

  1. 升级ESLint到8.x版本:
    npm install eslint@^8.0.0 --save-dev
    
  2. 升级配套ESLint插件,避免新的兼容问题:
    npm install @babel/eslint-parser@latest @typescript-eslint/eslint-plugin@latest @typescript-eslint/parser@latest eslint-plugin-jest@latest --save-dev
    
  3. 重新安装@react-native-community/eslint-config确保版本兼容:
    npm install @react-native-community/eslint-config@^3.2.0 --save-dev
    

三、清理缓存并重新安装依赖

完成上述升级后,清理旧依赖环境再重装:

  • 删除node_modules和锁文件:
    rm -rf node_modules package-lock.json
    
  • 重装所有依赖:
    npm install
    
  • 再次尝试安装@react-native-community/cli:
    npm install @react-native-community/cli
    

备选方案(无法升级依赖时使用)

如果暂时无法升级@aws-amplify/ui-react或ESLint,可在package.json中添加overrides字段强制指定兼容版本:

{
  "overrides": {
    // 强制冲突的radix-ui包使用项目已安装的React版本
    "react": "$react",
    "react-dom": "$react-dom",
    // 强制升级ESLint到符合要求的版本
    "eslint": "^8.27.0"
  }
}

添加后执行npm install即可,但这种方式存在兼容性风险,需测试项目功能是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:50:43