Expo新建React Native项目运行npx expo start报metro依赖缺失错误求助
问题场景
执行以下操作创建并启动全新Expo React Native项目时,触发Missing package "metro/src/lib/attachWebsocketServer"报错:
- 执行
npx expo init app-name初始化新项目 - 进入项目文件夹后执行
npx expo start尝试启动服务
解决方法
按优先级从高到低尝试以下方案,绝大多数同类报错可在前两个方案解决:
- 清理全量缓存后重装依赖
直接在项目根目录执行以下命令,彻底删除损坏的依赖、锁文件和构建缓存后重启:rm -rf node_modules package-lock.json yarn.lock pnpm-lock.yaml .expo npm cache clean --force npm install npx expo start --clear - 安装与当前Expo版本匹配的metro相关依赖
这个报错核心原因基本都是metro包版本和当前Expo SDK版本不兼容,不要直接用npm安装最新版metro,用expo自带的依赖安装命令自动匹配兼容版本:
安装完成后执行npx expo install metro metro-config metro-resolver metro-corenpx expo start --clear启动即可。 - 锁版本解决依赖提升冲突
如果你用yarn或pnpm作为包管理器,可能存在依赖嵌套提升异常的问题,在项目package.json中添加resolutions字段强制全项目使用统一兼容版本的metro包:
保存后重新执行包管理器的安装命令,清缓存后重启服务即可。"resolutions": { "metro": "0.76.8", "metro-config": "0.76.8", "metro-resolver": "0.76.8", "metro-core": "0.76.8" } - 更新全局Expo工具版本
如果上述方案都无效,大概率是全局安装的旧版Expo初始化工具拉取了错误版本的项目模板,先卸载旧全局包再安装最新版:
更新完成后重新初始化项目测试即可。npm uninstall -g expo expo-cli npm install -g expo@latest
内容的提问来源于stack exchange,提问作者daveblaq
相关产品推荐
相关产品推荐

