expo start未启动Javascript bundling且Tunnel模式报错求助
Expo启动故障修复方案
Metro Bundler卡在启动阶段修复步骤
- 优先执行全量缓存清理启动命令,排除旧缓存阻塞问题:
npx expo start --clear
若清理后仍无法正常启动,手动删除项目根目录下的.expo文件夹、node_modules文件夹、package-lock.json/yarn.lock文件,再重新执行npm install安装依赖后启动服务。 - 检查默认端口占用情况:
Metro默认占用19000、19001、19002端口,端口被其他进程占用时会出现卡启动问题。Mac/Linux执行lsof -i :19000、Windows执行netstat -ano | findstr 19000查看占用进程,终止对应进程后重启服务即可,也可以手动指定未占用端口启动:npx expo start -p 19006 - 确认版本兼容性:
Expo SDK版本与Node版本存在对应兼容要求,SDK 48及以下版本适配Node 16/18.17.0以下版本,SDK 49+适配Node 18/20 LTS版本,版本不匹配会出现偶发启动失败问题。
Tunnel模式报错修复步骤
报错spawn yarnpkg ENOENT的核心原因是Expo默认调用yarn安装全局ngrok依赖,系统未安装yarn导致调用失败,可按以下步骤修复:
- 手动全局安装ngrok依赖:
先卸载可能存在的残留版本:npm uninstall -g @expo/ngrok ngrok
再安装匹配版本:npm install -g @expo/ngrok@^4.1.0 - 指定Expo默认包管理器:
在项目根目录新建.exprc配置文件,添加以下内容指定用npm作为包管理器,避免后续再调用yarn:{
"packageManager": "npm"
} - 若仍提示
Tunnel URL not found,先手动执行ngrok http 19000确认ngrok可正常生成公网链接,再启动expo start --tunnel即可。
偶发生效问题补充排查
- 检查电脑防火墙/安全软件配置:部分安全软件会拦截Metro端口的入站请求,临时关闭防火墙后测试如果可正常连接,将Node、Expo相关进程加入防火墙白名单即可。
- 排查路由器AP隔离设置:即使设备和电脑在同一WiFi下,若路由器开启AP隔离会禁止同网络下设备互相通信,关闭AP隔离或临时用电脑开热点供手机连接测试即可验证问题。
内容的提问来源于stack exchange,提问作者Mert Deveci
相关产品推荐
相关产品推荐

