diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index 718ff6190cfeac..95b986ebfe5d8e 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -498,32 +498,36 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { s.update( markerStartPos, markerStartPos + preloadMarker.length + 2, - `__vite__mapDeps([${renderedDeps.join(',')}])`, + renderedDeps.length > 0 + ? `__vite__mapDeps([${renderedDeps.join(',')}])` + : `[]`, ) rewroteMarkerStartPos.add(markerStartPos) } } } - const fileDepsCode = `[${fileDeps - .map((fileDep) => - fileDep.runtime ? fileDep.url : JSON.stringify(fileDep.url), - ) - .join(',')}]` - - const mapDepsCode = `\ -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ${fileDepsCode} - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -}\n` - - // inject extra code at the top or next line of hashbang - if (code.startsWith('#!')) { - s.prependLeft(code.indexOf('\n') + 1, mapDepsCode) - } else { - s.prepend(mapDepsCode) + if (fileDeps.length > 0) { + const fileDepsCode = `[${fileDeps + .map((fileDep) => + fileDep.runtime ? fileDep.url : JSON.stringify(fileDep.url), + ) + .join(',')}]` + + const mapDepsCode = `\ + function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ${fileDepsCode} + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) + }\n` + + // inject extra code at the top or next line of hashbang + if (code.startsWith('#!')) { + s.prependLeft(code.indexOf('\n') + 1, mapDepsCode) + } else { + s.prepend(mapDepsCode) + } } // there may still be markers due to inlined dynamic imports, remove