@@ -17,6 +17,14 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin {
17
17
name : 'vite:client-inject' ,
18
18
async transform ( code , id , options ) {
19
19
if ( id === normalizedClientEntry || id === normalizedEnvEntry ) {
20
+ const resolvedServerHostname = (
21
+ await resolveHostname ( config . server . host )
22
+ ) . name
23
+ const resolvedServerPort = config . server . port !
24
+ const devBase = config . base
25
+
26
+ const serverHost = `${ resolvedServerHostname } :${ resolvedServerPort } ${ devBase } `
27
+
20
28
let hmrConfig = config . server . hmr
21
29
hmrConfig = isObject ( hmrConfig ) ? hmrConfig : undefined
22
30
const host = hmrConfig ?. host || null
@@ -31,10 +39,8 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin {
31
39
port ||= 24678
32
40
}
33
41
34
- const devBase = config . base
35
- let directTarget =
36
- hmrConfig ?. host || ( await resolveHostname ( config . server . host ) ) . name
37
- directTarget += `:${ hmrConfig ?. port || config . server . port ! } `
42
+ let directTarget = hmrConfig ?. host || resolvedServerHostname
43
+ directTarget += `:${ hmrConfig ?. port || resolvedServerPort } `
38
44
directTarget += devBase
39
45
40
46
let hmrBase = devBase
@@ -46,6 +52,7 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin {
46
52
. replace ( `__MODE__` , JSON . stringify ( config . mode ) )
47
53
. replace ( `__BASE__` , JSON . stringify ( devBase ) )
48
54
. replace ( `__DEFINES__` , serializeDefine ( config . define || { } ) )
55
+ . replace ( `__SERVER_HOST__` , JSON . stringify ( serverHost ) )
49
56
. replace ( `__HMR_PROTOCOL__` , JSON . stringify ( protocol ) )
50
57
. replace ( `__HMR_HOSTNAME__` , JSON . stringify ( host ) )
51
58
. replace ( `__HMR_PORT__` , JSON . stringify ( port ) )
0 commit comments