From ab59598f4e07a466d8319e6d81047f75517085db Mon Sep 17 00:00:00 2001 From: Hex Date: Tue, 13 Jul 2021 15:04:31 +0800 Subject: [PATCH] feat: extract `config.base` in `importAnalysisBuild.ts` (#4096) --- packages/vite/src/node/plugins/importAnalysisBuild.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index 9672c5446bb5b0..a8907ecbea2368 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -15,9 +15,10 @@ import { transformImportGlob } from '../importGlob' export const isModernFlag = `__VITE_IS_MODERN__` export const preloadMethod = `__vitePreload` export const preloadMarker = `__VITE_PRELOAD__` +export const preloadBaseMarker = `__VITE_PRELOAD_BASE__` const preloadHelperId = 'vite/preload-helper' -const preloadCode = `let scriptRel;const seen = {};export const ${preloadMethod} = ${preload.toString()}` +const preloadCode = `let scriptRel;const seen = {};const base = '${preloadBaseMarker}';export const ${preloadMethod} = ${preload.toString()}` const preloadMarkerRE = new RegExp(`"${preloadMarker}"`, 'g') /** @@ -43,6 +44,8 @@ function preload(baseModule: () => Promise<{}>, deps?: string[]) { return Promise.all( deps.map((dep) => { + // @ts-ignore + dep = `${base}${dep}` // @ts-ignore if (dep in seen) return // @ts-ignore @@ -91,7 +94,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { load(id) { if (id === preloadHelperId) { - return preloadCode + return preloadCode.replace(preloadBaseMarker, config.base) } }, @@ -245,11 +248,11 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { analyzed.add(filename) const chunk = bundle[filename] as OutputChunk | undefined if (chunk) { - deps.add(config.base + chunk.fileName) + deps.add(chunk.fileName) const cssFiles = chunkToEmittedCssFileMap.get(chunk) if (cssFiles) { cssFiles.forEach((file) => { - deps.add(config.base + file) + deps.add(file) }) } chunk.imports.forEach(addDeps)