Expo项目启动Metro Bundler时出现cross-spawn路径找不到错误求助
解决Expo启动Metro Bundler时的cross-spawn路径错误及推荐版本组合
一、经过验证的稳定版本组合
以下版本搭配可确保初始项目构建无冲突:
- Node.js: 18.17.0 LTS
- NPM: 9.6.7
- Expo SDK: 49.0.15
- React Native: 0.72.6
注:Expo SDK 49官方支持Node.js 16.14.0+至20.x版本,之前提示不支持Node 17+属于旧版SDK的限制,SDK 49已兼容更高版本Node,无需强制切换到16.x。
二、解决cross-spawn路径错误的实操步骤
你遇到的错误大概率是Node版本切换后依赖缓存冲突、全局expo-cli与本地依赖不兼容导致的,按以下步骤处理:
- 卸载全局expo-cli
npm uninstall -g expo-cli - 彻底清理项目依赖与缓存
- 清除npm全局缓存:
npm cache clean --force - 删除项目根目录下的
node_modules文件夹、package-lock.json文件
- 清除npm全局缓存:
- 重新安装本地依赖
npm install - 使用本地Expo命令启动项目
npx expo start --android - 额外排查项
- 检查系统PATH环境变量,确保当前使用的Node.js的
bin目录排在最前面,避免多个Node版本冲突 - 进入项目的
node_modules/cross-spawn目录,确认bin文件夹存在,执行node bin/cross-spawn.js测试是否能正常运行
- 检查系统PATH环境变量,确保当前使用的Node.js的
三、后续避免版本冲突的建议
- 始终用NVM管理Node版本,切换版本后执行
nvm use <版本号>确保当前终端使用正确版本 - 创建新项目优先用
npx create-expo-app,依赖本地Expo工具链,避免全局工具的版本不一致问题 - 升级Expo时直接用
npx expo upgrade命令,自动处理所有依赖的版本兼容,不要手动单独安装expo包
内容的提问来源于stack exchange,提问作者Godwin Ikechukwu
相关产品推荐
相关产品推荐

