React Native monorepo iOS构建报错:无法解析@babel/runtime模块
解决React Native Monorepo(Yarn+Lerna)iOS构建时@babel/runtime缺失问题
针对你遇到的「Unable to resolve module @babel/runtime/helpers/interopRequireDefault」问题,给出以下针对性解决方案:
1. 根目录强制安装@babel/runtime
Monorepo的依赖hoisting机制可能导致子包无法共享该依赖,直接在项目根目录安装:
yarn add @babel/runtime -W
-W 参数指定在根工作区安装,确保所有子包都能访问到该依赖。
2. 检查Lerna与Yarn Workspace配置
确认你的 lerna.json 已正确启用Yarn Workspaces:
{ "packages": ["packages/*"], "npmClient": "yarn", "useWorkspaces": true, "version": "independent" }
如果之前配置过nohoist,检查是否误将@babel/runtime加入禁止hoist列表,若有则移除。
3. 清理缓存并重装依赖+Pods
缓存或Pods残留可能导致依赖未正确安装:
- 清理Yarn缓存:
yarn cache clean
- 删除项目根目录及所有子包的
node_modules文件夹 - 重装依赖:
yarn install
- 重新安装iOS Pods:
cd ios && pod deintegrate && pod install && cd ..
4. 检查子包package.json的依赖配置
若子包的package.json中将@babel/runtime设为peerDependency,需确保根目录已安装该依赖(步骤1已处理);若不需要peer依赖,可将其移至dependencies中并在子包执行yarn install。
5. 确认Babel配置正确性
确保项目根目录的babel.config.js使用React Native官方预设:
module.exports = { presets: ['module:metro-react-native-babel-preset'], };
这个预设会自动处理@babel/runtime的按需引入,无需额外配置。
内容的提问来源于stack exchange,提问作者niket
相关产品推荐
相关产品推荐

