diff --git a/packages/vite/src/node/__tests__/plugins/workerImportMetaUrl.spec.ts b/packages/vite/src/node/__tests__/plugins/workerImportMetaUrl.spec.ts index a6d60a84b345f3..348e3e39be0147 100644 --- a/packages/vite/src/node/__tests__/plugins/workerImportMetaUrl.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/workerImportMetaUrl.spec.ts @@ -221,4 +221,36 @@ new Worker( `"repro(new Worker(new URL(/* @vite-ignore */ "/worker?worker_file&type=classic", '' + import.meta.url)), { type: "module" })"`, ) }) + + test('with multi-line new URL and trailing comma', async () => { + expect( + await transform(`new Worker( + new URL( + "./worker.js", + import.meta.url, + ) +)`), + ).toMatchInlineSnapshot(` + "new Worker( + new URL(/* @vite-ignore */ "/worker.js?worker_file&type=classic", '' + import.meta.url) + )" + `) + }) + + test('with multi-line new URL, trailing comma, and worker options', async () => { + expect( + await transform(`const worker = new Worker( + new URL( + "./worker.js", + import.meta.url, + ), + { type: "module" }, +)`), + ).toMatchInlineSnapshot(` + "const worker = new Worker( + new URL(/* @vite-ignore */ "/worker.js?worker_file&type=module", '' + import.meta.url), + { type: "module" }, + )" + `) + }) }) diff --git a/packages/vite/src/node/plugins/workerImportMetaUrl.ts b/packages/vite/src/node/plugins/workerImportMetaUrl.ts index a8b25a262ff0f4..991783b64e075b 100644 --- a/packages/vite/src/node/plugins/workerImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/workerImportMetaUrl.ts @@ -209,7 +209,7 @@ export function workerImportMetaUrlPlugin(config: ResolvedConfig): Plugin { let s: MagicString | undefined const cleanString = stripLiteral(code) const workerImportMetaUrlRE = - /\bnew\s+(?:Worker|SharedWorker)\s*\(\s*(new\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*\))/dg + /\bnew\s+(?:Worker|SharedWorker)\s*\(\s*(new\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*(?:,\s*)?\))/dg let match: RegExpExecArray | null while ((match = workerImportMetaUrlRE.exec(cleanString))) {