Turborepo Monorepo中Expo React Native构建失败求助
解决 Turborepo Monorepo 中 Expo + React Native 构建失败问题
问题概述
基于 Turborepo 开发 Expo React Native 应用,环境配置:
- Expo 49.0.7
- React Native 0.72.3
执行构建时触发 pod install 失败,错误提示:
[codegen] Could not find react-native-codegen
升级 React Native 至 0.72.4 后出现新的构建错误,本地及 Expo 服务端构建均复现该问题。
针对性排查与修复步骤
1. 锁定 react-native-codegen 版本适配 RN 0.72.x
RN 0.72.x 对 codegen 版本有严格依赖,在 monorepo 根目录的 package.json 中添加 resolutions 字段强制指定适配版本:
"resolutions": { "react-native-codegen": "0.72.15" }
执行根目录依赖安装:
yarn install # 或 npm install
2. 清理缓存重建依赖
- 清理 Expo 缓存:
npx expo start --clear
- 清理 iOS 本地构建缓存:
cd ios && pod deintegrate && rm -rf Podfile.lock && pod install
- Turborepo 缓存清理:
npx turbo cache clean
3. 检查 monorepo 依赖链接配置
确保在 Expo 项目的 package.json 中,React Native 依赖指向正确的版本,避免 monorepo 中依赖版本冲突:
"dependencies": { "react-native": "0.72.3" }
若已升级至 0.72.4,需同步确认所有子项目的 RN 版本一致,避免跨版本依赖。
4. 适配 Expo 49 的 RN 版本兼容
Expo 49 官方适配的 RN 版本为 0.72.3,升级至 0.72.4 可能触发未兼容的底层问题,建议先回退至 RN 0.72.3,配合上述 resolutions 配置解决 codegen 缺失问题,待官方兼容补丁发布后再尝试升级。
内容的提问来源于stack exchange,提问作者Karam Jabareen
相关产品推荐
相关产品推荐

