From 75e866bd4ef368b4e037a4933dbaf188920dc683 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 18 Jan 2024 13:52:42 +0800 Subject: [PATCH] fix(compiler-sfc): fix type resolution for symlinked node_modules structure w/ pnpm close #10121 --- packages/compiler-sfc/src/compileScript.ts | 1 + packages/compiler-sfc/src/script/resolveType.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index 69beb2af796..46fc65c0069 100644 --- a/packages/compiler-sfc/src/compileScript.ts +++ b/packages/compiler-sfc/src/compileScript.ts @@ -118,6 +118,7 @@ export interface SFCScriptCompileOptions { fs?: { fileExists(file: string): boolean readFile(file: string): string | undefined + realpath?(file: string): string } /** * Transform Vue SFCs into custom elements. diff --git a/packages/compiler-sfc/src/script/resolveType.ts b/packages/compiler-sfc/src/script/resolveType.ts index 548d5d13c6d..968c168ddb9 100644 --- a/packages/compiler-sfc/src/script/resolveType.ts +++ b/packages/compiler-sfc/src/script/resolveType.ts @@ -860,6 +860,7 @@ function resolveFS(ctx: TypeResolveContext): FS | undefined { } return fs.readFile(file) }, + realpath: fs.realpath, }) } @@ -1048,7 +1049,7 @@ function resolveWithTS( if (filename.endsWith('.vue.ts')) { filename = filename.replace(/\.ts$/, '') } - return filename + return fs.realpath ? fs.realpath(filename) : filename } }