Skip to content

Commit 67ac572

Browse files
authoredNov 29, 2023
fix: bindCLIShortcuts to proper server (#15162)
1 parent 2649f40 commit 67ac572

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed
 

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

+26-19
Original file line numberDiff line numberDiff line change
@@ -942,26 +942,33 @@ async function restartServer(server: ViteDevServer) {
942942
})
943943
}
944944

945-
let newServer = null
946-
try {
947-
// delay ws server listen
948-
newServer = await _createServer(inlineConfig, { ws: false })
949-
} catch (err: any) {
950-
server.config.logger.error(err.message, {
951-
timestamp: true,
952-
})
953-
server.config.logger.error('server restart failed', { timestamp: true })
954-
return
955-
}
945+
// Reinit the server by creating a new instance using the same inlineConfig
946+
// This will triger a reload of the config file and re-create the plugins and
947+
// middlewares. We then assign all properties of the new server to the existing
948+
// server instance and set the user instance to be used in the new server.
949+
// This allows us to keep the same server instance for the user.
950+
{
951+
let newServer = null
952+
try {
953+
// delay ws server listen
954+
newServer = await _createServer(inlineConfig, { ws: false })
955+
} catch (err: any) {
956+
server.config.logger.error(err.message, {
957+
timestamp: true,
958+
})
959+
server.config.logger.error('server restart failed', { timestamp: true })
960+
return
961+
}
956962

957-
await server.close()
963+
await server.close()
958964

959-
// Assign new server props to existing server instance
960-
newServer._configServerPort = server._configServerPort
961-
newServer._currentServerPort = server._currentServerPort
962-
Object.assign(server, newServer)
963-
// Rebind internal server variable so functions reference the user server
964-
newServer._setInternalServer(server)
965+
// Assign new server props to existing server instance
966+
newServer._configServerPort = server._configServerPort
967+
newServer._currentServerPort = server._currentServerPort
968+
Object.assign(server, newServer)
969+
// Rebind internal server variable so functions reference the user server
970+
newServer._setInternalServer(server)
971+
}
965972

966973
const {
967974
logger,
@@ -976,7 +983,7 @@ async function restartServer(server: ViteDevServer) {
976983

977984
if (shortcutsOptions) {
978985
shortcutsOptions.print = false
979-
bindCLIShortcuts(newServer, shortcutsOptions)
986+
bindCLIShortcuts(server, shortcutsOptions)
980987
}
981988
}
982989

0 commit comments

Comments
 (0)
Please sign in to comment.