Expo Go自动更新故障:热重载功能无法正常工作
解决React Native Expo热重载失效及警告问题
一、热重载失效排查与修复
1. Expo Go移动端
- 确认设备和电脑在同一网络:手机和开发机必须连同一个WiFi,或者用USB调试模式,执行命令开启端口映射:
adb reverse tcp:8081 tcp:8081 - 手动触发重载:在Expo Go里摇一摇设备,或按
Ctrl+R(Android)/Cmd+R(iOS),选择「Reload」;同时确保开启「Enable Fast Refresh」选项 - 清除项目缓存:执行命令彻底清理缓存后重启服务
npx expo start --clear - 对齐Expo版本:检查
expo-cli和项目依赖的expo版本是否匹配,执行npm list expo查看,版本不一致则更新到稳定版:npm install expo@latest npm install -g expo-cli@latest
2. Web端(npm run web)
- 核对Fast Refresh配置:如果自定义过
webpack.config.js,确保react-refresh插件已正确集成;Expo默认配置自带该插件,若被修改需补加:const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); // 在plugins数组中添加 new ReactRefreshWebpackPlugin() - 清除Web端缓存:执行
npm run web -- --clear,或手动删除项目根目录的.expo/web-build文件夹 - 检查文件监听权限:Windows下部分杀毒软件或系统权限会阻止Node.js监听文件变化,暂时关闭杀毒软件,或用管理员身份运行终端
- 禁用浏览器缓存:打开浏览器开发者工具的「Network」标签,勾选「Disable cache」,避免浏览器加载旧资源
二、废弃API及punycode警告处理
- 废弃API警告:根据控制台提示的具体API,替换为对应库的最新写法。比如
expo-xxx系列库的旧方法,查官方文档换用新API;React Native的旧PropTypes可以用deprecated-react-native-prop-types替代,或直接移除(TypeScript用户可通过类型检查替代) punycode模块弃用警告:这是依赖库间接引入的,暂时不影响功能。要消除警告的话,手动安装兼容版本:
或在npm install punycode@2.3.1package.json中添加版本锁定:
之后重新执行"resolutions": { "punycode": "^2.3.1" }npm install
内容的提问来源于stack exchange,提问作者John Pan
相关产品推荐
相关产品推荐

