Vite 开发时 import 路径大小写不一致导致 HMR 失效的排查过程
最近在做一个后台管理项目,本地开发时改了组件里的样式,浏览器偶尔不会自动热更新,必须手动刷新才能看到变化。一开始以为是 Vite 的 HMR 偶发问题,重启几次 dev server 也没找出规律。后来发现只在某个页面会出现,而且只在修改部分子组件时触发。Vite 的 HMR 机制本身依赖模块图,如果模块图里同一个文件出现两个不同路径,HMR 就找不到正确的更新边界,于是会退化成整页刷新或者干脆不刷新。这次真正的原因其实是 import 路径的大小写不一致:文件系统里是 UserList.vue,但代码里写成了 userList.vue。macOS 默认文件系统不区分大小写,编译器能找到文件,...