From 5de3a98d2e396d21bb0ec71fe3c0ab55a07ccfba Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 7 Mar 2022 22:18:16 -0800 Subject: [PATCH] fix: `import.meta.url` should not throw (#7219) --- .../vite/src/node/plugins/assetImportMetaUrl.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/vite/src/node/plugins/assetImportMetaUrl.ts b/packages/vite/src/node/plugins/assetImportMetaUrl.ts index c34259bf48a0e9..56cfe0d8d29499 100644 --- a/packages/vite/src/node/plugins/assetImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/assetImportMetaUrl.ts @@ -19,7 +19,11 @@ export function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin { return { name: 'vite:asset-import-meta-url', async transform(code, id, options) { - if (code.includes('new URL') && code.includes(`import.meta.url`)) { + if ( + !options?.ssr && + code.includes('new URL') && + code.includes(`import.meta.url`) + ) { const importMetaUrlRE = /\bnew\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*,?\s*\)/g const noCommentsCode = code @@ -30,13 +34,6 @@ export function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin { while ((match = importMetaUrlRE.exec(noCommentsCode))) { const { 0: exp, 1: rawUrl, index } = match - if (options?.ssr) { - this.error( - `\`new URL(url, import.meta.url)\` is not supported in SSR.`, - index - ) - } - if (!s) s = new MagicString(code) // potential dynamic template string