From 96dbb220ff210d2f7391f43a807bcd8cfb0da776 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90=20Kevin=20Deng?= Date: Wed, 24 Jul 2024 00:10:50 +0800 Subject: [PATCH] fix(plugin-vue): clear cache after build end --- packages/plugin-vue/src/index.ts | 5 ++++- packages/plugin-vue/src/script.ts | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/plugin-vue/src/index.ts b/packages/plugin-vue/src/index.ts index b301a596..72f8944b 100644 --- a/packages/plugin-vue/src/index.ts +++ b/packages/plugin-vue/src/index.ts @@ -19,7 +19,7 @@ import { getSrcDescriptor, getTempSrcDescriptor, } from './utils/descriptorCache' -import { getResolvedScript, typeDepToSFCMap } from './script' +import { clearScriptCache, getResolvedScript, typeDepToSFCMap } from './script' import { transformMain } from './main' import { handleHotUpdate, handleTypeDepChange } from './handleHotUpdate' import { transformTemplateAsModule } from './template' @@ -361,5 +361,8 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin { } } }, + buildEnd() { + clearScriptCache() + }, } } diff --git a/packages/plugin-vue/src/script.ts b/packages/plugin-vue/src/script.ts index e0e821c3..4c97a0a6 100644 --- a/packages/plugin-vue/src/script.ts +++ b/packages/plugin-vue/src/script.ts @@ -4,8 +4,8 @@ import { cache as descriptorCache } from './utils/descriptorCache' import type { ResolvedOptions } from '.' // ssr and non ssr builds would output different script content -const clientCache = new WeakMap() -const ssrCache = new WeakMap() +let clientCache = new WeakMap() +let ssrCache = new WeakMap() export const typeDepToSFCMap = new Map>() @@ -32,6 +32,11 @@ export function setResolvedScript( ;(ssr ? ssrCache : clientCache).set(descriptor, script) } +export function clearScriptCache(): void { + clientCache = new WeakMap() + ssrCache = new WeakMap() +} + // Check if we can use compile template as inlined render function // inside