VSCode中Vue项目热重载不生效需先确认使用Vite或Vue CLI,检查开发服务器是否运行、端口是否被占、files.autoSave设置、插件是否为Volar(Vue3)或Vetur(Vue2),并验证vite.config.ts中HMR配置及sourcemap路径映射。
VSCode 里 Vue 项目热重载不生效?先确认你用的是 Vite 还是 Vue CLI
热重载行为和配置方式完全不同:vue cli 用 vue-cli-service serve,vite 用 vite 或 npm run dev。vscode 本身不提供热重载,它只是编辑器;真正起作用的是底层开发服务器。如果你改了 .vue 文件但浏览器没更新,大概率是服务没跑起来,或者端口被占、https 配置干扰、甚至文件保存没触发(比如禁用了 vscode 的 files.autosave)。
实操建议:
- 终端里手动运行
npm run dev(Vite)或npm run serve(Vue CLI),别只靠插件按钮 - 检查终端输出是否看到
Local: http://localhost:5173/(Vite)或App running at:(Vue CLI) - 打开浏览器访问对应地址,而不是直接双击
index.html - 确认 VSCode 设置里
files.autoSave是onFocusChange或afterDelay,避免“改了没保存”假象
必须装的 VSCode 插件只有两个:Volar 和 TypeScript Vue Plugin
Vue 3 + `
实操建议:
- 安装
Volar(作者:johnsoncodehk),启用它 - 再装
TypeScript Vue Plugin (Volar)(同一作者),这是让.vue文件内获得 TS 类型检查的关键 - 如果项目用的是 Vue 2,别硬套 Volar;改用
Vetur,并确保vetur.experimental.templateInterpolationService设为true - 重启 VSCode,否则 Volar 的语言服务器不会加载
热重载失效常见原因:HMR 配置被覆盖或监听路径不对
Vite 默认开启 HMR,但某些场景下会静默失败:比如你在 vite.config.ts 里写了 server.watch.ignored 却误加了 **/*.vue;或者用了 alias 指向了 symlink 目录,而系统未开启 server.watch.usePolling;又或者你在 WSL 中开发却没配 server.host: '0.0.0.0',导致 Windows 端浏览器无法连接。
立即学习“前端免费学习笔记(深入)”;
实操建议:
- 检查
vite.config.ts中是否意外设置了hmr: false或server.watch.ignored包含 vue 文件 - WSL 用户加一行:
server: { host: '0.0.0.0', port: 5173 },并在 Windows 浏览器访问http://localhost:5173 - 若使用 NFS 或 Docker 挂载,加上
server.watch.usePolling = true(性能略降,但稳定) - 修改
src/App.vue试试,排除是某个子组件因defineComponent写法或setup()返回值问题导致局部 HMR 失效
调试 Vue 组件时断点不命中?检查 VSCode 的 launch.json 配置
VSCode 调试依赖 .vscode/launch.json 启动 Chrome 并注入 sourcemap。如果点了调试按钮却没反应,或断点灰掉,通常是路径映射(sourceMaps 和 webRoot)没对上。
实操建议:
- 生成标准配置:在调试面板点「创建 launch.json」→「Chrome」→ 选中 “vuejs: chrome” 模板(Volar 提供)
- 确认
webRoot指向项目根目录,例如"${workspaceFolder}",不是"${workspaceFolder}/src" - 确保
vite.config.ts中build.sourcemap为true(开发模式默认开启,但显式写出来更安心) - 启动调试前,先确保开发服务器已运行;VSCode 调试器不会自动拉起
vite
HMR updated,浏览器控制台有没有 [vite] hot updated:,以及 Network 面板里有没有 hot-update.json 请求成功。










