Vite 开发环境热更新失效的排查:从 HMR 边界到依赖预构建
在维护一个基于 Vite 的中后台项目时,我遇到过几次热更新突然失灵的情况:改完代码浏览器没有反应,控制台里看不到 [vite] hmr update 日志,只能手动刷新才能看到变化。热更新失效不像构建报错那样直接,它往往没有红色错误提示,排查起来更依赖对 Vite 工作机制的理解。常见诱因包括模块被 HMR 边界排除、循环依赖导致更新链断裂、被 optimizeDeps 预构建的依赖没有触发重新打包,以及文件监听器在 WSL 或 Docker 环境下失效。这篇文章会结合真实的调试过程,梳理 Vite HMR 的传播逻辑,给出几种典型失效场景的定位方式,并整理出一套可以复用的排查顺序,让下次再...