React Native运行npm start报意外错误 Expo扫码网络超时如何解决
Expo项目启动报错排查方案
网络类问题(对应扫码提示网络响应超时)
- 确认运行Expo服务的电脑、扫码用的手机连接同一个局域网WiFi,避免出现一个连主网一个连访客网、手机单独用移动数据的情况。如果使用的是公共WiFi,大概率开启了AP隔离阻止设备间互访,直接用手机开热点给电脑连接即可绕过限制。
- 临时关闭电脑端系统防火墙、第三方安全软件的网络拦截规则,Windows Defender、macOS自带防火墙默认可能拦截Node.js服务的外部访问,关闭后重试扫码连接。
- 直接使用隧道模式启动服务,绕开局域网连通性校验,启动命令为
npx expo start --tunnel,启动后重新用Expo Go扫新生成的二维码即可。
本地服务异常(对应本地页面提示意外错误)
- 全局安装的旧版
expo-cli已经被Expo官方弃用,会和新版项目依赖产生兼容性冲突,先执行npm uninstall -g expo-cli卸载全局版本,后续所有项目操作都用项目本地的expo依赖执行即可。 - 清理缓存重装依赖,操作步骤如下:
- 进入
MyApp项目目录,删除node_modules文件夹、package-lock.json文件 - 执行
npm cache clean --force清理npm本地缓存 - 执行
npm install重新安装所有项目依赖 - 执行
npx expo start启动服务
- 进入
- 校验本地Node.js版本,当前Expo稳定版要求Node.js版本≥18(LTS版本),执行
node -v可查看当前版本,版本过低请升级到对应LTS版本后重试。
端口占用问题
- Expo默认会占用19000、19001、19002端口提供服务,如果端口被其他程序(之前未关闭的Expo进程、其他本地服务)占用,会导致服务启动异常,可指定空闲端口启动:
npx expo start --port 19006

内容的提问来源于stack exchange,提问作者José Carlos
相关产品推荐
相关产品推荐

