kit
kit copied to clipboard
Use the new Vite Runtime API to support server-side HMR correctly
Describe the problem
Currently used vite.ssrLoadModule() doesn't support the HMR API fully. Vite doesn't call hot.dispose/hot.accept functions for invalidated modules, thus making server-side long-living tasks (i.e. setInterval() or event listener callbacks) stack on top of each other each time a reload happens.
Describe the proposed solution
Call runtime.executeEntrypoint() instead of vite.ssrLoadModule().
Alternatives considered
No response
Importance
i cannot use SvelteKit without it
Additional Information
No response
Second this. Would be a very helpful improvement.
I experience the same problem with WebSocket httpServer which is started in Svelte's hooks.server.ts - it remains running and throwing EADDRINUSE (port/address in use).