@@ -19,10 +19,29 @@ console.log('[vite] connecting...')
19
19
const socketProtocol =
20
20
__HMR_PROTOCOL__ || ( location . protocol === 'https:' ? 'wss' : 'ws' )
21
21
const socketHost = `${ __HMR_HOSTNAME__ || location . hostname } :${ __HMR_PORT__ } `
22
- const socket = new WebSocket ( `${ socketProtocol } ://${ socketHost } ` , 'vite-hmr' )
23
22
const base = __BASE__ || '/'
24
23
const messageBuffer : string [ ] = [ ]
25
24
25
+ let socket : WebSocket
26
+ try {
27
+ socket = new WebSocket ( `${ socketProtocol } ://${ socketHost } ` , 'vite-hmr' )
28
+
29
+ // Listen for messages
30
+ socket . addEventListener ( 'message' , async ( { data } ) => {
31
+ handleMessage ( JSON . parse ( data ) )
32
+ } )
33
+
34
+ // ping server
35
+ socket . addEventListener ( 'close' , async ( { wasClean } ) => {
36
+ if ( wasClean ) return
37
+ console . log ( `[vite] server connection lost. polling for restart...` )
38
+ await waitForSuccessfulPing ( )
39
+ location . reload ( )
40
+ } )
41
+ } catch ( error ) {
42
+ console . error ( `[vite] failed to connect to websocket (${ error } ). ` )
43
+ }
44
+
26
45
function warnFailedFetch ( err : Error , path : string | string [ ] ) {
27
46
if ( ! err . message . match ( 'fetch' ) ) {
28
47
console . error ( err )
@@ -40,11 +59,6 @@ function cleanUrl(pathname: string): string {
40
59
return url . pathname + url . search
41
60
}
42
61
43
- // Listen for messages
44
- socket . addEventListener ( 'message' , async ( { data } ) => {
45
- handleMessage ( JSON . parse ( data ) )
46
- } )
47
-
48
62
let isFirstUpdate = true
49
63
50
64
async function handleMessage ( payload : HMRPayload ) {
@@ -212,14 +226,6 @@ async function waitForSuccessfulPing(ms = 1000) {
212
226
}
213
227
}
214
228
215
- // ping server
216
- socket . addEventListener ( 'close' , async ( { wasClean } ) => {
217
- if ( wasClean ) return
218
- console . log ( `[vite] server connection lost. polling for restart...` )
219
- await waitForSuccessfulPing ( )
220
- location . reload ( )
221
- } )
222
-
223
229
// https://wicg.github.io/construct-stylesheets
224
230
const supportsConstructedSheet = ( ( ) => {
225
231
// TODO: re-enable this try block once Chrome fixes the performance of
0 commit comments