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 } }