Windows(使用Ubuntu/WSL)环境下Next.js Fast Refresh无法正常工作
React.js/Next.js 热更新失效解决指南
- 确认文件保存状态:手动触发保存(
Ctrl+S/Cmd+S),检查编辑器状态栏的保存提示,或直接查看文件系统的修改时间,排除编辑器自动保存失效的问题。 - 验证服务器运行模式:
- Next.js必须用
next dev启动开发服务器,next build && next start是生产模式,不会触发热更新。 - 查看终端输出,确认dev server没有报错或卡住,若有报错先解决对应问题。
- Next.js必须用
- 调整系统文件监听限制:
- Linux系统执行:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p,临时调高文件监听上限。 - macOS系统执行:
launchctl limit maxfiles 65536 200000,重启终端后再启动项目。
- Linux系统执行:
- 排查项目路径问题:将项目移至无中文、空格或特殊符号的路径下,部分系统对特殊路径的文件监听支持不佳。
- Next.js专属排查:
- 检查
next.config.js,确认未在webpackDevMiddleware中设置hot: false,也未通过自定义webpack配置移除热更新相关插件。 - 重置依赖:删除
node_modules、package-lock.json/yarn.lock,执行npm install/yarn install,确保Next.js与React版本兼容(如Next.js 13+对应React 18+)。 - 清理缓存:删除
.next文件夹,或用next dev --no-cache启动服务器,强制跳过缓存。
- 检查
- React项目(create-react-app)补充排查:
- 检查
package.json的scripts,确保dev命令为react-scripts start,未添加--no-watch等禁用监听的参数。 - 定位代码问题:注释最近修改的组件或逻辑,排查是否存在无限循环、全局作用域的不可恢复操作导致热更新卡住。
- 禁用浏览器缓存:打开开发者工具(F12),在Network选项卡勾选
Disable cache,避免浏览器缓存旧资源。
- 检查
- 极端排查手段:
- 更换编辑器测试,排除编辑器文件监听异常的可能。
- 重启电脑,解决系统资源不足或进程卡住导致的监听失效问题。
内容的提问来源于stack exchange,提问作者hooleymcknight
相关产品推荐
相关产品推荐

