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

React Native Expo安装@apollo/client后无法解析main模块字段求助

这个报错是因为@apollo/client v3.7及以上版本默认将CommonJS入口文件后缀改为.cjs,而React Native默认的Metro打包器默认未配置识别.cjs后缀,导致找不到入口文件,可按照以下方案解决:

方案1:配置Metro支持.cjs后缀(推荐,可兼容最新版Apollo Client)

  • 在项目根目录创建/编辑metro.config.js,添加以下配置:
const { getDefaultConfig } = require('expo/metro-config');

const config = getDefaultConfig(__dirname);
// 新增.cjs后缀支持
config.resolver.sourceExts.push('cjs');

module.exports = config;
  • 配置完成后执行命令清除缓存重启Expo服务:
    npx expo start --clear

方案2:降级Apollo Client版本

如果配置Metro后仍有兼容问题,可降级到3.7之前的稳定版本:

  • 执行安装命令:
    npm install @apollo/client@3.6.11 graphql
    如果使用yarn,执行:
    yarn add @apollo/client@3.6.11 graphql
  • 安装完成后同样执行npx expo start --clear重启服务即可。

补充排查

如果上述操作都无效,可切换官方npm源后重新安装依赖:
npm config set registry https://registry.npmjs.org/
之后删除node_modules、package-lock.json/yarn.lock文件重新安装即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:24:03