sveltejs / kit

web development, streamlined
https://kit.svelte.dev
MIT License
18.49k stars 1.89k forks source link

Use the new Vite Runtime API to support server-side HMR correctly #11932

Open garrappachc opened 6 months ago

garrappachc commented 6 months ago

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

nzav commented 4 months ago

Second this. Would be a very helpful improvement.