From cd60dc921dccd74c4d2c4e306643b3006d7b973e Mon Sep 17 00:00:00 2001 From: Alec Larson <1925840+aleclarson@users.noreply.github.com> Date: Tue, 29 Jun 2021 22:43:35 -0400 Subject: [PATCH 1/2] fix: stop using `posix.join` on `config.base` --- packages/vite/src/node/plugins/clientInjections.ts | 2 +- packages/vite/src/node/server/middlewares/indexHtml.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/plugins/clientInjections.ts b/packages/vite/src/node/plugins/clientInjections.ts index 028537eb486f63..da3483470b9098 100644 --- a/packages/vite/src/node/plugins/clientInjections.ts +++ b/packages/vite/src/node/plugins/clientInjections.ts @@ -34,7 +34,7 @@ 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 !== '/') { 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 9d870fe8df8f19..968b210abe1c5e 100644 --- a/packages/vite/src/node/server/middlewares/indexHtml.ts +++ b/packages/vite/src/node/server/middlewares/indexHtml.ts @@ -138,7 +138,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' } From 0a2299a7d5d2ac65c36dcfbc0ca8d865aeb704ae Mon Sep 17 00:00:00 2001 From: Alec Larson <1925840+aleclarson@users.noreply.github.com> Date: Tue, 29 Jun 2021 23:33:35 -0400 Subject: [PATCH 2/2] fix: skip HMR port suffix when `config.base` is external --- packages/vite/src/node/plugins/clientInjections.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/plugins/clientInjections.ts b/packages/vite/src/node/plugins/clientInjections.ts index da3483470b9098..dae99d8365e93f 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 { Plugin } from '../plugin' import { ResolvedConfig } from '../config' import { CLIENT_ENTRY, ENV_ENTRY } from '../constants' -import { normalizePath } from '../utils' +import { isExternalUrl, normalizePath } from '../utils' // ids in transform are normalized to unix style const normalizedClientEntry = normalizePath(CLIENT_ENTRY) @@ -36,7 +36,7 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin { if (options.path) { hmrBase = hmrBase + options.path } - if (hmrBase !== '/') { + if (hmrBase !== '/' && !isExternalUrl(hmrBase)) { port = path.posix.normalize(`${port}${hmrBase}`) }