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

React Native CLI安装@apollo/client遇graphql依赖冲突的解决问询

问题描述

我正在开发一个React Native CLI应用,想要使用@apollo/client连接GraphQL服务器。执行安装命令:

npm install @apollo/client graphql

时出现如下错误:

npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: parcel-transfer@0.0.1
npm ERR! Found: graphql@14.7.0
npm ERR! node_modules/graphql
npm ERR!   peer graphql@"^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0" from apollo-link@1.2.14
npm ERR!   node_modules/apollo-link
npm ERR!     apollo-link@"^1.2.14" from graphql-tools@4.0.8
npm ERR!     node_modules/graphql-tools
npm ERR!       graphql-tools@"^4.0.5" from json-graphql-server@2.3.2
npm ERR!       node_modules/json-graphql-server
npm ERR!         json-graphql-server@"^2.3.2" from the root project
npm ERR!     apollo-link@"^1.0.0" from apollo-client@2.6.10
npm ERR!     node_modules/json-graphql-server/node_modules/apollo-client
npm ERR!       apollo-client@"^2.6.4" from json-graphql-server@2.3.2
npm ERR!       node_modules/json-graphql-server
npm ERR!         json-graphql-server@"^2.3.2" from the root project
npm ERR!   peer graphql@"^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" from apollo-utilities@1.3.4
npm ERR!   node_modules/apollo-utilities
npm ERR!     apollo-utilities@"^1.3.0" from apollo-link@1.2.14
npm ERR!     node_modules/apollo-link
npm ERR!       apollo-link@"^1.2.14" from graphql-tools@4.0.8
npm ERR!       node_modules/graphql-tools
npm ERR!         graphql-tools@"^4.0.5" from json-graphql-server@2.3.2
npm ERR!         node_modules/json-graphql-server
npm ERR!       1 more (apollo-client)
npm ERR!     apollo-utilities@"^1.0.1" from graphql-tools@4.0.8
npm ERR!     node_modules/graphql-tools
npm ERR!       graphql-tools@"^4.0.5" from json-graphql-server@2.3.2
npm ERR!       node_modules/json-graphql-server
npm ERR!         json-graphql-server@"^2.3.2" from the root project
npm ERR!     2 more (apollo-client, apollo-cache)
npm ERR!   8 more (express-graphql, graphql-tag, graphql-tools, ...)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! @apollo/client@"*" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: graphql@16.8.0
npm ERR! node_modules/graphql
npm ERR!   peer graphql@"^15.7.2 || ^16.0.0" from subscriptions-transport-ws@0.11.0
npm ERR!   node_modules/subscriptions-transport-ws
npm ERR!     peerOptional subscriptions-transport-ws@"^0.9.0 || ^0.11.0" from @apollo/client@3.8.2
npm ERR!     node_modules/@apollo/client
npm ERR!       @apollo/client@"*" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! 
npm ERR! For a full report see:
npm ERR! /home/paulin/.npm/_logs/2023-09-04T22_36_13_101Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /home/paulin/.npm/_logs/2023-09-04T22_36_13_101Z-debug-0.log
paulin@bkjp-hp-envy:~/projects/Betfien-Inc/parcel-transfer/frontend/android/app$ 

请问React Native是否已预装graphql和apollo?该如何解决这个依赖冲突问题?


解答

React Native是否预装graphql和apollo?

React Native CLI默认不会预装graphql或任何Apollo相关包(包括@apollo/client)。你项目里已存在的graphql@14.7.0是来自你安装的json-graphql-server依赖,它本身依赖旧版本的GraphQL和Apollo相关库。

解决依赖冲突的方法

  • 方法1:使用--legacy-peer-deps参数安装
    这是最快捷的临时解决方式,适合快速推进开发:

    npm install @apollo/client graphql --legacy-peer-deps
    

    该参数会让npm忽略peer依赖版本冲突,采用旧的peer依赖解析逻辑,避免因为版本不匹配导致的安装失败。

  • 方法2:升级json-graphql-server(如果可行)
    查看json-graphql-server是否有支持更高版本GraphQL的更新版本,执行升级命令:

    npm update json-graphql-server
    

    如果新版本兼容graphql@16.x,就能从根源解决冲突。

  • 方法3:指定兼容的GraphQL版本
    安装与json-graphql-server兼容的GraphQL版本,同时确保该版本也满足@apollo/client的要求。@apollo/client@3.x支持graphql@^15.7.2 || ^16.0.0,而json-graphql-server@2.3.2依赖的graphql-tools@4.0.8支持到graphql@^15.0.0,所以可以安装graphql@15.x版本:

    npm install @apollo/client graphql@15.8.0
    

    这个版本同时满足两边的peer依赖要求,能避免冲突。

  • 方法4:移除json-graphql-server(如果不再需要)
    如果你的项目已经不需要本地模拟的GraphQL服务器,可以直接移除它:

    npm uninstall json-graphql-server
    

    之后再重新安装@apollo/client和graphql即可正常完成:

    npm install @apollo/client graphql
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:34:52