确认vite真在跑hmr需三步:一查浏览器console是否有[vite] hot updated:(非server restarted.);二看终端启动日志是否连续显示✓ built in xxx ms和✓ started server in xxx ms;三确保用npm run dev或npx vite启动,禁用javascript debug配置。

WebStorm 本身不提供热更新能力,它只是把保存动作传给底层开发服务器;热更新失效,90% 是 Vite 或 Webpack 没真启用 HMR,而不是 IDE 配置错了。
怎么确认 Vite 真在跑 HMR?
别只看终端有没有启动成功——关键看浏览器 Console 是否出现 [vite] hot updated:。如果只看到 [vite] server restarted.,说明每次保存都在全量重启,不是热更新。
- 终端第一行必须有
✓ built in XXX ms和紧随其后的✓ started server in XXX ms,中间不能卡顿或报错 - 启动命令必须是
npm run dev(对应"dev": "vite")或npx vite,别误用 WebStorm 自带的 “JavaScript Debug” 配置——它起的是http://localhost:63342/,和 Vite 的http://localhost:5173/冲突 - Vite 默认开箱即用 HMR,除非你手动删过
vite.config.ts里的server.hmr配置(一般不用设,留空即可)
为什么断点变灰、调试器跳过?
大概率是 sourcemap 路径没对上。Vite 默认用 esbuild 生成 inline sourcemap,WebStorm 有时识别不稳定。
- 在
vite.config.ts中显式写build: { sourcemap: true }(别写'inline') - 改完必须 完全停止并重启 Vite 服务(
Ctrl+C再npm run dev,不是热更) - 进
Settings > Languages & Frameworks > JavaScript > Debugging,确认勾选了Enable JavaScript source maps - 浏览器访问务必用 Vite 输出的真实地址(如
http://localhost:5173/),别点 WebStorm 右上角 “Open in Browser” ——它会打开内置代理地址,sourcemap 路径直接失效
React 项目热更新失效,是不是 WebStorm 设置问题?
不是。React 函数组件保态热更新靠的是 @pmmmwh/react-refresh-webpack-plugin,Webpack 原生 HMR 不管用。
- 如果你用 Create React App,只认
npm start,其他启动方式(比如webpack serve --hot)大概率没配全 - 自配 Webpack 必须同时满足:
devServer.hot: true、devServer.liveReload: false、plugins数组里加new webpack.HotModuleReplacementPlugin() - Vite 项目则完全不用操心——它默认就支持 React 组件级热更新,装了
@vitejs/plugin-react就够
最容易被忽略的点:sourcemap 配置改完不重启服务,或者浏览器开了错误的地址,这两处一错,热更新和调试就全白搭。











