React Native Expo反复构建Javascript Bundle失败是什么原因?
Expo bundler 循环重复构建问题的常见原因及解决方案
文件监听规则异常
Expo的热重载机制默认会监听项目根目录下所有非忽略文件的变动,如果项目中存在大量自动生成的临时文件、编辑器自动保存改写文件、或者未配置忽略规则的非业务目录(比如.git目录、node_modules缓存目录、日志输出目录),短时间内的高频文件变动会反复触发构建钩子,导致循环构建。
解决方法:在项目根目录的.exprignore文件中添加非业务相关的忽略路径,调试阶段可暂时关闭编辑器的自动保存、自动格式化功能验证是否恢复正常。网络或端口异常
如果iPhone调试设备和开发主机的网络连接不稳定、处于不同网段、或者开发主机开启了VPN/代理工具,会导致设备端反复向bundler请求拉取JS bundle;如果Expo默认占用的19000、19001端口被本地其他服务占用,也会触发构建逻辑异常循环。
解决方法:启动Expo服务时指定未被占用的端口,执行命令npx expo start --port 19008,同时关闭开发主机的VPN/代理,确保调试设备和开发主机连接同一个稳定的局域网。本地缓存损坏
Expo本地构建缓存、npm依赖缓存损坏会导致构建流程异常,无法正常生成最终bundle,触发重复构建逻辑。
解决方法:停止当前Expo服务后,依次执行以下命令清除所有缓存后重启服务:
rm -rf .expo rm -rf node_modules package-lock.json yarn.lock npm install npx expo start --clear
- 依赖版本不兼容
如果当前使用的Expo SDK版本和项目中引入的第三方React Native依赖包版本不匹配,会导致构建阶段报错后自动触发重试,形成循环构建。
解决方法:核对所有第三方RN依赖的官方文档,确认其适配的Expo SDK版本,将不兼容的依赖降级到对应适配版本即可。
内容的提问来源于stack exchange,提问作者sandy_yeseul
相关产品推荐
相关产品推荐

