diff --git a/packages/vite/src/node/importGlob.ts b/packages/vite/src/node/importGlob.ts index 29fbca7569cc6c..57a20f85aa8b5b 100644 --- a/packages/vite/src/node/importGlob.ts +++ b/packages/vite/src/node/importGlob.ts @@ -15,7 +15,7 @@ export async function transformImportGlob( importIndex: number, root: string, normalizeUrl?: (url: string, pos: number) => Promise<[string, string]>, - ssr = false + preload = true ): Promise<{ importsString: string imports: string[] @@ -87,7 +87,7 @@ export async function transformImportGlob( entries += ` ${JSON.stringify(file)}: ${identifier},` } else { let imp = `import(${JSON.stringify(importee)})` - if (!normalizeUrl && !ssr) { + if (!normalizeUrl && preload) { imp = `(${isModernFlag}` + `? ${preloadMethod}(()=>${imp},"${preloadMarker}")` + diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index a8907ecbea2368..5674e6327836b9 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -82,6 +82,7 @@ function preload(baseModule: () => Promise<{}>, deps?: string[]) { */ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { const ssr = !!config.build.ssr + const insertPreload = !(ssr || !!config.build.lib) return { name: 'vite:import-analysis', @@ -145,7 +146,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { index, config.root, undefined, - ssr + insertPreload ) str().prepend(importsString) str().overwrite(expStart, endIndex, exp) @@ -155,7 +156,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { continue } - if (dynamicIndex > -1 && !ssr) { + if (dynamicIndex > -1 && insertPreload) { needPreloadHelper = true const dynamicEnd = source.indexOf(`)`, end) + 1 const original = source.slice(dynamicIndex, dynamicEnd) @@ -166,7 +167,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { if ( needPreloadHelper && - !ssr && + insertPreload && !source.includes(`const ${preloadMethod} =`) ) { str().prepend(`import { ${preloadMethod} } from "${preloadHelperId}";`)