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