From 0af851a4de4fb76dfe6a3832589c00fe2a702b24 Mon Sep 17 00:00:00 2001 From: taylorliu Date: Tue, 3 Aug 2021 10:47:22 +0800 Subject: [PATCH 1/2] fix(assetImportMetaUrl): prevent mixed matched result --- packages/vite/src/node/plugins/assetImportMetaUrl.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/vite/src/node/plugins/assetImportMetaUrl.ts b/packages/vite/src/node/plugins/assetImportMetaUrl.ts index 19723a29fbca67..21a7aade4cbc27 100644 --- a/packages/vite/src/node/plugins/assetImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/assetImportMetaUrl.ts @@ -4,9 +4,6 @@ import path from 'path' import { fileToUrl } from './asset' import { ResolvedConfig } from '../config' -const importMetaUrlRE = - /\bnew\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*\)/g - /** * Convert `new URL('./foo.png', import.meta.url)` to its resolved built URL * @@ -21,6 +18,8 @@ export function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin { return { name: 'asset-import-meta-url', async transform(code, id, ssr) { + const importMetaUrlRE = + /\bnew\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*\)/g if (code.includes('new URL') && code.includes(`import.meta.url`)) { let s: MagicString | null = null let match: RegExpExecArray | null From 3decf312999a6d250210a7929d40d00558464b14 Mon Sep 17 00:00:00 2001 From: taylorliu Date: Tue, 3 Aug 2021 14:57:29 +0800 Subject: [PATCH 2/2] chore: move regex to inside of condition --- packages/vite/src/node/plugins/assetImportMetaUrl.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/plugins/assetImportMetaUrl.ts b/packages/vite/src/node/plugins/assetImportMetaUrl.ts index 21a7aade4cbc27..425d53c5cfdccc 100644 --- a/packages/vite/src/node/plugins/assetImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/assetImportMetaUrl.ts @@ -18,9 +18,9 @@ export function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin { return { name: 'asset-import-meta-url', async transform(code, id, ssr) { - const importMetaUrlRE = - /\bnew\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*\)/g if (code.includes('new URL') && code.includes(`import.meta.url`)) { + const importMetaUrlRE = + /\bnew\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*\)/g let s: MagicString | null = null let match: RegExpExecArray | null while ((match = importMetaUrlRE.exec(code))) {