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

运行yarn ios时先后缺失metro-config、metro-transform-worker包报错如何解决?

问题根因说明

第一个报错本质是项目依赖树不完整,metro-config是react-native的内置依赖,不需要单独安装,你手动安装了不匹配版本的metro-config才触发了第二个报错:Yarn PnP模式对依赖声明检查严格,你安装的metro-config@0.66.2本身的依赖声明里没有包含metro-transform-worker,就会抛出访问歧义的错误。


具体解决步骤

步骤1:回退错误操作,清理环境

  • 先删除你手动添加到package.json里的metro-config依赖项
  • 执行以下命令清理缓存和现有无效依赖:
rm -rf node_modules .yarn/cache yarn.lock .pnp.cjs .pnp.loader.mjs

步骤2:校验依赖版本匹配性

  • 确认项目package.json里已经正确添加了react-native和对应版本的expo依赖,版本要和你创建项目时的expo版本匹配,示例参考:
"dependencies": {
  "expo": "~45.0.0", // expo v45对应的默认metro-config版本就是0.66.x,版本匹配就不会出现依赖缺失问题
  "react-native": "0.68.2",
  // 其余项目原有依赖
}
  • 如果全局安装的expo cli版本过旧,可执行npm install -g expo-cli@latest升级到匹配版本。

步骤3:重新安装依赖

  • 执行yarn install完整安装所有依赖,不要单独安装单个依赖包
  • 如果你使用的是Yarn 3+的PnP模式,需要在.yarnrc.yml里添加packageExtensions配置补全metro-config的缺失依赖声明,避免后续再触发同类报错:
packageExtensions:
  "metro-config@0.66.2":
    dependencies:
      "metro-transform-worker": "0.66.2"

添加完配置后再执行一次yarn install让配置生效。

步骤4:重新执行启动命令

优先使用expo官方启动命令运行项目:

npx expo start --ios
# 如果package.json的scripts里已经配置了"ios": "expo start --ios",可直接执行yarn ios

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:27:05