@@ -942,26 +942,33 @@ async function restartServer(server: ViteDevServer) {
942
942
} )
943
943
}
944
944
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
+ }
956
962
957
- await server . close ( )
963
+ await server . close ( )
958
964
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
+ }
965
972
966
973
const {
967
974
logger,
@@ -976,7 +983,7 @@ async function restartServer(server: ViteDevServer) {
976
983
977
984
if ( shortcutsOptions ) {
978
985
shortcutsOptions . print = false
979
- bindCLIShortcuts ( newServer , shortcutsOptions )
986
+ bindCLIShortcuts ( server , shortcutsOptions )
980
987
}
981
988
}
982
989
0 commit comments