From b8bb1aacd50a2254544b0453ba5734ee777b5477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Szafra=C5=84ski?= Date: Tue, 28 May 2024 14:48:33 +0200 Subject: [PATCH] fix(vite): don't get available port when `hmr.server` is set (#27326) --- packages/vite/src/client.ts | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/vite/src/client.ts b/packages/vite/src/client.ts index 44397003b7..12d746c021 100644 --- a/packages/vite/src/client.ts +++ b/packages/vite/src/client.ts @@ -171,18 +171,22 @@ export async function buildClient (ctx: ViteBuildContext) { }) as any if (clientConfig.server && clientConfig.server.hmr !== false) { - const hmrPortDefault = 24678 // Vite's default HMR port - const hmrPort = await getPort({ - port: hmrPortDefault, - ports: Array.from({ length: 20 }, (_, i) => hmrPortDefault + 1 + i), - }) - clientConfig.server = defu(clientConfig.server, { - https: ctx.nuxt.options.devServer.https, + const serverDefaults: Omit & { hmr: Exclude } = { hmr: { protocol: ctx.nuxt.options.devServer.https ? 'wss' : 'ws', - port: hmrPort, }, - }) + } + if (typeof clientConfig.server.hmr !== 'object' || !clientConfig.server.hmr.server) { + const hmrPortDefault = 24678 // Vite's default HMR port + serverDefaults.hmr!.port = await getPort({ + port: hmrPortDefault, + ports: Array.from({ length: 20 }, (_, i) => hmrPortDefault + 1 + i), + }) + } + if (ctx.nuxt.options.devServer.https) { + serverDefaults.https = ctx.nuxt.options.devServer.https === true ? {} : ctx.nuxt.options.devServer.https + } + clientConfig.server = defu(clientConfig.server, serverDefaults as ViteConfig['server']) } // Add analyze plugin if needed