vscode本身不提供热重载,真正实现热重载的是终端中的开发服务器(如vite、webpack dev server等);live server仅支持全页刷新,不支持hmr;vite等构建工具需通过终端命令启动并启用hmr;dart/flutter是vscode唯一原生支持热重载的场景;node.js后端热更新依赖nodemon等工具。

VSCode 本身不提供热重载(Hot Reload)功能,它只是编辑器;真正实现热重载的是你运行在终端里的开发服务器(比如 Vite、Webpack Dev Server、Live Server、Metro 或 nodemon)。所谓“VSCode 热重载”,其实是 VSCode 配合这些工具完成文件监听、触发刷新或模块替换的协同过程。
Live Server 插件只支持自动刷新,不支持 HMR
很多人误以为 Live Server 能热重载,其实它只做两件事:启动一个本地 HTTP 服务 + 保存时强制刷新整个页面(full reload)。它不解析模块依赖,也不替换组件逻辑,所以改个 setup() 里的响应式变量,页面会闪一下,但状态(比如表单输入、滚动位置、计时器)全丢。
- 适用场景:纯静态 HTML/CSS/JS 小项目、原型验证、学习阶段快速预览
- 不适用场景:Vue/React 组件状态调试、需要保留内存状态的交互逻辑验证
- 配置要点:
liveServer.settings.port改端口,liveServer.settings.CustomBrowser指定浏览器,但别指望它支持import变更监听 - 常见坑:改了 CSS 但没生效?检查是否用了
<link rel="stylesheet">引入 —— Live Server 不处理 CSS HMR,只刷新 HTML
Vite/Vue CLI/Webpack 的 HMR 必须靠终端命令启动
Vue 或 React 项目的热重载能力来自构建工具,不是 VSCode 插件开关。你在 VSCode 里点右键“Open with Live Server”,和执行 vite 或 npm run dev 是完全不同的底层机制。
PigX UI Pro 前端开发指南 - Vue 3 + TypeScript + Element Plus。当用户提到 PigX UI、PigX 前端、lgb-mgui 项目、Vue 3 企业级后台开发、Element Plus 后台开发时使用此技能。
- 确认终端里看到类似
[vite] hot updated: /src/components/Hello.vue的日志,才说明 HMR 正在工作 - 如果保存后无日志、页面也不变,先检查终端进程是否还在运行;被 Ctrl+C 中断或报错退出后,HMR 自然失效
- Vite 默认启用 HMR,但如果你在
vite.config.ts里写了server.hmr: false,或者加了--no-hmr参数,就会静默关闭 - 修改
main.ts、路由守卫、Pinia store 初始化代码,通常触发 full reload(白屏刷新),这不是 bug,是 HMR 的设计限制
Dart/Flutter 的 hotReloadOnSave 是 VSCode 唯一真热重载开关
这是少数由 VSCode 插件直接控制热重载行为的场景。Dart 插件通过 dart.hotReloadOnSave 设置,在保存 .dart 文件时向正在运行的 flutter run 进程发送热重载指令。
- 必须满足前提:终端已执行
flutter run、状态栏右下角显示 Flutter 设备名(如Pixel_4a_API_33)、且图标是带虫子的⚡️(表示调试模式) - 仅对
.dart文件生效;改pubspec.yaml、图片、字体等资源不会触发 - 热重载失败时,先看 VSCode 底部托盘有没有 “Hot reload was performed” 提示 —— 没提示=根本没发出去,大概率是 flutter daemon 通信被杀毒软件拦截,或 Dart 插件版本太旧(建议更新到 v3.85+)
- 注意区分:热重载(
hot reload)保留状态;热重启(hot restart)清空所有状态,需手动按Ctrl+Shift+F5或点状态栏图标
Node.js 后端热更新靠 nodemon,VSCode 只负责写代码
VSCode 没有内置后端热重载。你改完 server.js,想让服务自动重启,得靠 nodemon 这类工具监听文件变化并执行 node server.js。
- 推荐配置方式:在
package.json里写"dev": "nodemon --watch src --ext js,json --ignore 'src/**/*.test.js' server.js" -
--watch必须显式指定目录,否则默认只监听当前目录,嵌套深的项目容易漏文件 - Windows 下路径用双反斜杠或正斜杠,比如
--ignore "dist/**/*",避免因转义失败导致 nodemon 频繁重启 - 别在 VSCode 调试器里直接跑
node server.js—— 它不监听文件,改完必须手动停止再启动;要用就配launch.json启动nodemon,类型设为node,program指向./node_modules/nodemon/bin/nodemon.js
热重载不是魔法,它是工具链之间精确配合的结果:编辑器保存 → 文件系统事件 → 构建工具感知 → 模块替换或页面刷新。最容易被忽略的一环,往往是终端里的那个进程是否真的在运行、是否真的收到了变更通知——而不是盯着 VSCode 设置反复勾选。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










