From 85612fe69da98759dbf3b5352cf47a74f20374ff Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 8 Sep 2021 09:51:20 -0400 Subject: [PATCH] fix(plugin-vue): ensure descriptor in case main request is cached --- packages/plugin-vue/src/handleHotUpdate.ts | 2 +- packages/plugin-vue/src/index.ts | 12 ++++++++++-- .../plugin-vue/src/utils/descriptorCache.ts | 19 ++++++++++++++----- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/packages/plugin-vue/src/handleHotUpdate.ts b/packages/plugin-vue/src/handleHotUpdate.ts index 94d1fb4ee7830e..7676036929b49f 100644 --- a/packages/plugin-vue/src/handleHotUpdate.ts +++ b/packages/plugin-vue/src/handleHotUpdate.ts @@ -19,7 +19,7 @@ export async function handleHotUpdate({ read, server }: HmrContext): Promise { - const prevDescriptor = getDescriptor(file, false) + const prevDescriptor = getDescriptor(file, server.config.root, false, false) if (!prevDescriptor) { // file hasn't been requested yet (e.g. async component) return diff --git a/packages/plugin-vue/src/index.ts b/packages/plugin-vue/src/index.ts index 5ee0b396140e43..95fb8a7fc646d2 100644 --- a/packages/plugin-vue/src/index.ts +++ b/packages/plugin-vue/src/index.ts @@ -167,7 +167,11 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin { if (query.src) { return fs.readFileSync(filename, 'utf-8') } - const descriptor = getDescriptor(filename)! + const descriptor = getDescriptor( + filename, + options.root, + options.isProduction + )! let block: SFCBlock | null | undefined if (query.type === 'script') { // handle +