FRONT012infoPro

vite-hmr-reload-guard-missing

Vite config has no plugin that periodically triggers a full page reload, so long dev sessions accumulate HMR-retained memory.

Applies to: CJS, JavaScript, MJS, TypeScript

Why this matters

Vite's HMR keeps old module versions reachable through closures and React's Fiber tree. Developers who leave a tab open for days while editing accumulate multi-GB retained heaps. A small dev-only plugin that counts handleHotUpdate invocations and fires ctx.server.ws.send({ type: 'full-reload' }) every N updates eliminates the leak with a ~1s refresh. Ship nothing to prod: gate the plugin with apply: 'serve' so production bundles are unaffected.

Catch it before it ships

pip install stablestack # or: npx stablestackstablestack # scans your project, FRONT012 includedstablestack explain FRONT012

FRONT012 is part of the Pro rule set. See pricing — the free tier ships 24 checks with no signup.

False positive in your codebase? Suppress a single line with # noqa: FRONT012