@@ -65,6 +65,7 @@ import {
65
65
serveStaticMiddleware
66
66
} from './middlewares/static'
67
67
import { timeMiddleware } from './middlewares/time'
68
+ import type { ModuleNode } from './moduleGraph'
68
69
import { ModuleGraph } from './moduleGraph'
69
70
import { errorMiddleware , prepareError } from './middlewares/error'
70
71
import type { HmrOptions } from './hmr'
@@ -245,6 +246,11 @@ export interface ViteDevServer {
245
246
* Mutates the given SSR error by rewriting the stacktrace
246
247
*/
247
248
ssrFixStacktrace ( e : Error ) : void
249
+ /**
250
+ * Triggers HMR for a module in the module graph. You can use the `server.moduleGraph`
251
+ * API to retrieve the module to be reloaded. If `hmr` is false, this is a no-op.
252
+ */
253
+ reloadModule ( module : ModuleNode ) : Promise < void >
248
254
/**
249
255
* Start the server.
250
256
*/
@@ -382,6 +388,11 @@ export async function createServer(
382
388
ssrRewriteStacktrace ( stack : string ) {
383
389
return ssrRewriteStacktrace ( stack , moduleGraph )
384
390
} ,
391
+ async reloadModule ( module ) {
392
+ if ( serverConfig . hmr !== false && module . file ) {
393
+ updateModules ( module . file , [ module ] , Date . now ( ) , server )
394
+ }
395
+ } ,
385
396
async listen ( port ?: number , isRestart ?: boolean ) {
386
397
await startServer ( server , port , isRestart )
387
398
if ( httpServer ) {
0 commit comments