@@ -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