Expo 43.0裸工作流项目中expo-modules-core配置无效警告问题求助
解决Expo 43裸工作流中
expo-modules-core的Metro警告问题 成因分析
这个警告的核心是**expo-modules-core包的配置里,dependency.platforms.ios字段的类型不符合Metro的校验要求**——Metro期望它是一个对象,但实际它可能被错误设置成了字符串、null或者其他非对象类型。
结合你的场景,大概率是这几个原因:
- 升级或集成
expo-modules-core时,安装过程出了小问题,导致包自身的package.json配置损坏,或者项目package.json里自动生成的关联配置格式出错; - 你安装的
expo-modules-core版本和Expo 43.0不兼容,不同版本的包配置结构有差异,导致Metro校验失败; - Metro缓存了旧的配置信息,哪怕你后来修复了配置,缓存还在读取错误的内容。
分步解决方案
1. 检查并修复配置格式
先打开项目根目录的package.json,看看有没有expo-modules-core相关的配置块,或者直接查看node_modules/expo-modules-core/package.json里的platforms字段。正常的配置应该是这样:
"platforms": { "ios": {}, "android": {} }
如果ios字段是"ios": "true"、"ios": null这类非对象格式,手动改成{}就行。
2. 安装和Expo 43匹配的版本
Expo 43对应的expo-modules-core稳定版本是~0.6.0,你可以重新安装这个匹配版本:
# npm用户 npm install expo-modules-core@~0.6.0 --save # yarn用户 yarn add expo-modules-core@~0.6.0
3. 清除Metro缓存重启服务
缓存是这类问题的常客,执行下面的命令彻底清缓存后重启Metro:
npx react-native start --reset-cache
4. 同步iOS依赖(针对iOS端)
进入iOS目录重新执行pod安装,确保依赖配置完全同步:
cd ios pod install --repo-update cd ..
验证
做完这些步骤后,再启动react-native start,这个警告应该就消失了。如果还是存在,可以试试删除node_modules、package-lock.json(或yarn.lock),重新执行安装命令后再重复上面的步骤。
内容的提问来源于stack exchange,提问作者Axel
相关产品推荐
相关产品推荐

