From: Evan You Date: Thu, 18 Jan 2024 05:52:42 +0000 (+0800) Subject: fix(compiler-sfc): fix type resolution for symlinked node_modules structure w/ pnpm X-Git-Tag: v3.4.15~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75e866bd4ef368b4e037a4933dbaf188920dc683;p=thirdparty%2Fvuejs%2Fcore.git fix(compiler-sfc): fix type resolution for symlinked node_modules structure w/ pnpm close #10121 --- diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index 69beb2af79..46fc65c006 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 548d5d13c6..968c168ddb 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 } }