Skip to content

Commit a3d9684

Browse files
authored
fix: update logic that is resolve socket url (#188)
* Update logic that is resolve socket url * Update logic that is resolve socket url * Update logic that is resolve socket url
1 parent 8c638cf commit a3d9684

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module.exports = {
77
__HMR_HOSTNAME__: 'readonly',
88
__HMR_PORT__: 'readonly',
99
__HMR_PROTOCOL__: 'readonly',
10+
__HMR_BASE__: 'readonly',
1011
__dirname: 'off',
1112
__filename: 'off',
1213
},

packages/runtime/src/ws.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// #region
2-
// copied from https://github.dev/vitejs/vite/blob/76bbcd09985f85f7786b7e2e2d5ce177ee7d1916/packages/vite/src/client/client.ts#L25
2+
// copied from https://github.com/vitejs/vite/blob/d76db0cae645beaecd970d95b4819158c5dd568a/packages/vite/src/client/client.ts#LL25
33
// use server configuration, then fallback to inference
4+
const importMetaUrl = new URL(import.meta.url)
5+
46
const socketProtocol = __HMR_PROTOCOL__ || (location.protocol === 'https:' ? 'wss' : 'ws')
5-
const socketHost = __HMR_PORT__
6-
? `${__HMR_HOSTNAME__ || location.hostname}:${__HMR_PORT__}`
7-
: `${__HMR_HOSTNAME__ || location.hostname}`
7+
const hmrPort = __HMR_PORT__
8+
const socketHost = `${__HMR_HOSTNAME__ || importMetaUrl.hostname}:${
9+
hmrPort || importMetaUrl.port
10+
}${__HMR_BASE__}`
811
const socket = new WebSocket(`${socketProtocol}://${socketHost}`, 'vite-hmr')
912
// #endregion
1013

packages/vite-plugin-checker/src/main.ts

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -107,38 +107,34 @@ export function checker(userConfig: UserPluginConfig): Plugin {
107107

108108
return
109109
},
110-
transform(code, id) {
110+
transform(code, id, options) {
111111
if (id === RUNTIME_PUBLIC_PATH) {
112112
if (!resolvedConfig) return
113113

114+
const devBase = resolvedConfig.base
115+
114116
// #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
124124
if (resolvedConfig.server.middlewareMode) {
125-
port = String(port || 24678)
126-
} else {
127-
port = String(port || options.port || resolvedConfig.server.port!)
125+
port ||= 24678
128126
}
129127

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)
136131
}
137132

138133
return code
139134
.replace(/__HMR_PROTOCOL__/g, JSON.stringify(protocol))
140135
.replace(/__HMR_HOSTNAME__/g, JSON.stringify(host))
141136
.replace(/__HMR_PORT__/g, JSON.stringify(port))
137+
.replace(/__HMR_BASE__/g, JSON.stringify(hmrBase))
142138
// #endregion
143139
}
144140

0 commit comments

Comments
 (0)