diff --git a/packages/vite/src/node/optimizer/scan.ts b/packages/vite/src/node/optimizer/scan.ts index f530b40d12764a..62255c6abcf43e 100644 --- a/packages/vite/src/node/optimizer/scan.ts +++ b/packages/vite/src/node/optimizer/scan.ts @@ -187,7 +187,7 @@ function esbuildScanPlugin( name: 'vite:dep-scan', setup(build) { const scripts: Record = {} - let scriptId = 0 + const scriptIdMap: Record = {} // external urls build.onResolve({ filter: externalRE }, ({ path }) => ({ @@ -274,7 +274,10 @@ function esbuildScanPlugin( content + (loader.startsWith('ts') ? extractImportPaths(content) : '') - const key = `${path}?id=${scriptId++}` + const scriptId = scriptIdMap[path] ?? 1 + scriptIdMap[path] = scriptId + 1 + + const key = `${path}?id=${scriptId}` if (contents.includes('import.meta.glob')) { scripts[key] = { @@ -294,7 +297,7 @@ function esbuildScanPlugin( } } - js += `import ${JSON.stringify(virtualModulePrefix + key)};\n` + js += `import ${JSON.stringify(virtualModulePrefix + key)}\n` } } @@ -307,7 +310,7 @@ function esbuildScanPlugin( } return { - loader, + loader: 'js', contents: js } }