Skip to content

Commit 521ca58

Browse files
CHOYSENbluwy
andauthored
refactor!: move side effect of restart server to the caller (#8746)
Co-authored-by: bluwy <bjornlu.dev@gmail.com>
1 parent bca91c8 commit 521ca58

File tree

3 files changed

+36
-15
lines changed

3 files changed

+36
-15
lines changed

packages/vite/src/node/server/hmr.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { getAffectedGlobModules } from '../plugins/importMetaGlob'
1818
import { isExplicitImportRequired } from '../plugins/importAnalysis'
1919
import { getEnvFilesForMode } from '../env'
2020
import type { ModuleNode } from './moduleGraph'
21+
import { restartServerWithUrls } from '.'
2122

2223
export const debugHmr = createDebugger('vite:hmr')
2324

@@ -77,7 +78,7 @@ export async function handleHMRUpdate(
7778
{ clear: true, timestamp: true },
7879
)
7980
try {
80-
await server.restart()
81+
await restartServerWithUrls(server)
8182
} catch (e) {
8283
config.logger.error(colors.red(e))
8384
}

packages/vite/src/node/server/index.ts

+32-13
Original file line numberDiff line numberDiff line change
@@ -863,9 +863,7 @@ export function resolveServerOptions(
863863

864864
async function restartServer(server: ViteDevServer) {
865865
global.__vite_start_time = performance.now()
866-
const { port: prevPort, host: prevHost } = server.config.server
867866
const shortcutsOptions = server._shortcutsOptions
868-
const oldUrls = server.resolvedUrls
869867

870868
let inlineConfig = server.config.inlineConfig
871869
if (server._forceOptimizeOnRestart) {
@@ -895,26 +893,47 @@ async function restartServer(server: ViteDevServer) {
895893

896894
const {
897895
logger,
898-
server: { port, host, middlewareMode },
896+
server: { port, middlewareMode },
899897
} = server.config
900898
if (!middlewareMode) {
901899
await server.listen(port, true)
902-
logger.info('server restarted.', { timestamp: true })
903-
if (
904-
(port ?? DEFAULT_DEV_PORT) !== (prevPort ?? DEFAULT_DEV_PORT) ||
905-
host !== prevHost ||
906-
diffDnsOrderChange(oldUrls, newServer.resolvedUrls)
907-
) {
908-
logger.info('')
909-
server.printUrls()
910-
}
911900
} else {
912901
server.ws.listen()
913-
logger.info('server restarted.', { timestamp: true })
914902
}
903+
logger.info('server restarted.', { timestamp: true })
915904

916905
if (shortcutsOptions) {
917906
shortcutsOptions.print = false
918907
bindCLIShortcuts(newServer, shortcutsOptions)
919908
}
920909
}
910+
911+
/**
912+
* Internal function to restart the Vite server and print URLs if changed
913+
*/
914+
export async function restartServerWithUrls(
915+
server: ViteDevServer,
916+
): Promise<void> {
917+
if (server.config.server.middlewareMode) {
918+
await server.restart()
919+
return
920+
}
921+
922+
const { port: prevPort, host: prevHost } = server.config.server
923+
const prevUrls = server.resolvedUrls
924+
925+
await server.restart()
926+
927+
const {
928+
logger,
929+
server: { port, host },
930+
} = server.config
931+
if (
932+
(port ?? DEFAULT_DEV_PORT) !== (prevPort ?? DEFAULT_DEV_PORT) ||
933+
host !== prevHost ||
934+
diffDnsOrderChange(prevUrls, server.resolvedUrls)
935+
) {
936+
logger.info('')
937+
server.printUrls()
938+
}
939+
}

packages/vite/src/node/shortcuts.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import readline from 'node:readline'
22
import colors from 'picocolors'
3+
import { restartServerWithUrls } from './server'
34
import type { ViteDevServer } from './server'
45
import type { PreviewServer } from './preview'
56
import { openBrowser } from './server/openBrowser'
@@ -96,7 +97,7 @@ const BASE_DEV_SHORTCUTS: CLIShortcut<ViteDevServer>[] = [
9697
key: 'r',
9798
description: 'restart the server',
9899
async action(server) {
99-
await server.restart()
100+
await restartServerWithUrls(server)
100101
},
101102
},
102103
{

0 commit comments

Comments
 (0)