@@ -107,38 +107,34 @@ export function checker(userConfig: UserPluginConfig): Plugin {
107
107
108
108
return
109
109
} ,
110
- transform ( code , id ) {
110
+ transform ( code , id , options ) {
111
111
if ( id === RUNTIME_PUBLIC_PATH ) {
112
112
if ( ! resolvedConfig ) return
113
113
114
+ const devBase = resolvedConfig . base
115
+
114
116
// #region
115
- // copied from https://github.dev/vitejs/vite/blob/76bbcd09985f85f7786b7e2e2d5ce177ee7d1916/packages/vite/src/client/client.ts#L25
116
- let options = resolvedConfig . server . hmr
117
- options = options && typeof options !== 'boolean' ? options : { }
118
- const host = options . host || null
119
- const protocol = options . protocol || null
120
- let port : number | string | false | undefined
121
- if ( isObject ( resolvedConfig . server . hmr ) ) {
122
- port = resolvedConfig . server . hmr . clientPort || resolvedConfig . server . hmr . port
123
- }
117
+ // copied from https://github.com/vitejs/vite/blob/d76db0cae645beaecd970d95b4819158c5dd568a/packages/vite/src/client/client.ts#LL25
118
+ const hmrConfig = isObject ( resolvedConfig . server . hmr ) ? resolvedConfig . server . hmr : { }
119
+ const host = hmrConfig . host || null
120
+ const protocol = hmrConfig . protocol || null
121
+ // hmr.clientPort -> hmr.port
122
+ // -> (24678 if middleware mode) -> new URL(import.meta.url).port
123
+ let port = hmrConfig ?. clientPort || hmrConfig ?. port || null
124
124
if ( resolvedConfig . server . middlewareMode ) {
125
- port = String ( port || 24678 )
126
- } else {
127
- port = String ( port || options . port || resolvedConfig . server . port ! )
125
+ port ||= 24678
128
126
}
129
127
130
- let hmrBase = resolvedConfig . base
131
- if ( options . path ) {
132
- hmrBase = path . posix . join ( hmrBase , options . path )
133
- }
134
- if ( hmrBase !== '/' ) {
135
- port = path . posix . normalize ( `${ port } ${ hmrBase } ` )
128
+ let hmrBase = devBase
129
+ if ( hmrConfig ?. path ) {
130
+ hmrBase = path . posix . join ( hmrBase , hmrConfig . path )
136
131
}
137
132
138
133
return code
139
134
. replace ( / _ _ H M R _ P R O T O C O L _ _ / g, JSON . stringify ( protocol ) )
140
135
. replace ( / _ _ H M R _ H O S T N A M E _ _ / g, JSON . stringify ( host ) )
141
136
. replace ( / _ _ H M R _ P O R T _ _ / g, JSON . stringify ( port ) )
137
+ . replace ( / _ _ H M R _ B A S E _ _ / g, JSON . stringify ( hmrBase ) )
142
138
// #endregion
143
139
}
144
140
0 commit comments