From 8888284b1be508d3682da8f13064a5e3611da7ce Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Mon, 10 Mar 2025 14:34:22 +0900 Subject: [PATCH] feat: show friendly error for malformed base --- packages/vite/src/node/config.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 45c81fc9172aeb..92ba0d72ab3dae 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1418,7 +1418,7 @@ export async function resolveConfig( inlineConfig, root: resolvedRoot, base, - decodedBase: decodeURI(base), + decodedBase: decodeBase(base), rawBase: resolvedBase, publicDir: resolvedPublicDir, cacheDir, @@ -1678,6 +1678,16 @@ export function resolveBaseUrl( return base } +function decodeBase(base: string): string { + try { + return decodeURI(base) + } catch { + throw new Error( + 'The value passed to "base" option was malformed. It should be a valid URL.', + ) + } +} + export function sortUserPlugins( plugins: (Plugin | Plugin[])[] | undefined, ): [Plugin[], Plugin[], Plugin[]] {