调试 Docker 卷挂载停止更新时的 Vite 热重载问题
我在一个运行于 Docker Compose 中的小型 React 项目上遇到了一个令人沮丧的 Vite 问题。应用启动正常,测试通过,浏览器也能正常加载,但热重载在几分钟后就无法检测到文件更改了。起初看起来像是 Vite 的 bug,因为保存同一个文件两次,有时会触发重新构建,有时却毫无反应。 我首先检查了显而易见的部分:容器日志、Vite websocket 消息、绑定挂载路径,以及编辑器是否通过临时文件保存。有用的线索来自于对比 macOS 文件事件与容器内观察到的事件。宿主机能看到每一次保存,但当项目通过嵌套的工作区文件夹挂载时,容器却漏掉了更改。更改轮询设置有所帮助,但这使得开发服务器变得嘈杂且缓慢。 真正有效的方法是将绑定挂载移动到真实的项目路径,从挂载中排除 node_modules,并仅为需要轮询的文件夹设置 Vite 监视轮询。我还添加了一个小脚本,在启动开发服务器之前…