diff --git a/packages/vite/src/node/plugins/clientInjections.ts b/packages/vite/src/node/plugins/clientInjections.ts index eb5c7183c2ac59..57e391ebf037e7 100644 --- a/packages/vite/src/node/plugins/clientInjections.ts +++ b/packages/vite/src/node/plugins/clientInjections.ts @@ -2,7 +2,7 @@ import path from 'path' import type { Plugin } from '../plugin' import type { ResolvedConfig } from '../config' import { CLIENT_ENTRY, ENV_ENTRY } from '../constants' -import { isObject, normalizePath } from '../utils' +import { isExternalUrl, isObject, normalizePath } from '../utils' // ids in transform are normalized to unix style const normalizedClientEntry = normalizePath(CLIENT_ENTRY) @@ -34,9 +34,9 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin { } let hmrBase = config.base if (options.path) { - hmrBase = path.posix.join(hmrBase, options.path) + hmrBase = hmrBase + options.path } - if (hmrBase !== '/') { + if (hmrBase !== '/' && !isExternalUrl(hmrBase)) { port = path.posix.normalize(`${port}${hmrBase}`) } diff --git a/packages/vite/src/node/server/middlewares/indexHtml.ts b/packages/vite/src/node/server/middlewares/indexHtml.ts index 568e0f202fcd39..c4872263c8155e 100644 --- a/packages/vite/src/node/server/middlewares/indexHtml.ts +++ b/packages/vite/src/node/server/middlewares/indexHtml.ts @@ -237,7 +237,7 @@ const devHtmlHook: IndexHtmlTransformHook = async ( tag: 'script', attrs: { type: 'module', - src: path.posix.join(base, CLIENT_PUBLIC_PATH) + src: base + CLIENT_PUBLIC_PATH.slice(1) }, injectTo: 'head-prepend' }