diff --git a/packages/plugin-dts/src/tsc.ts b/packages/plugin-dts/src/tsc.ts index e4fec391c..48e8529e6 100644 --- a/packages/plugin-dts/src/tsc.ts +++ b/packages/plugin-dts/src/tsc.ts @@ -27,11 +27,12 @@ export async function emitDts( const start = Date.now(); const { configPath, declarationDir, name, dtsExtension, banner, footer } = options; + const configFileParseResult = loadTsconfig(configPath); const { options: rawCompilerOptions, fileNames, projectReferences, - } = loadTsconfig(configPath); + } = configFileParseResult; const compilerOptions = { ...rawCompilerOptions, @@ -49,6 +50,9 @@ export async function emitDts( options: compilerOptions, projectReferences, host, + configFileParsingDiagnostics: ts.getConfigFileParsingDiagnostics( + configFileParseResult, + ), }); const emitResult = program.emit(); @@ -60,7 +64,7 @@ export async function emitDts( const diagnosticMessages: string[] = []; for (const diagnostic of allDiagnostics) { - const fileLoc = getFileLoc(diagnostic); + const fileLoc = getFileLoc(diagnostic, configPath); const message = `${fileLoc} - ${color.red('error')} ${color.gray(`TS${diagnostic.code}:`)} ${ts.flattenDiagnosticMessageText( diagnostic.messageText, host.getNewLine(), @@ -94,7 +98,7 @@ export async function emitDts( }; const reportDiagnostic = (diagnostic: ts.Diagnostic) => { - const fileLoc = getFileLoc(diagnostic); + const fileLoc = getFileLoc(diagnostic, configPath); logger.error( `${fileLoc} - ${color.red('error')} ${color.gray(`TS${diagnostic.code}:`)}`, diff --git a/packages/plugin-dts/src/utils.ts b/packages/plugin-dts/src/utils.ts index f8117779b..f56eef55d 100644 --- a/packages/plugin-dts/src/utils.ts +++ b/packages/plugin-dts/src/utils.ts @@ -38,7 +38,10 @@ export function ensureTempDeclarationDir(cwd: string): string { return dirPath; } -export function getFileLoc(diagnostic: ts.Diagnostic): string { +export function getFileLoc( + diagnostic: ts.Diagnostic, + configPath: string, +): string { if (diagnostic.file) { const { line, character } = ts.getLineAndCharacterOfPosition( diagnostic.file, @@ -47,7 +50,7 @@ export function getFileLoc(diagnostic: ts.Diagnostic): string { return `${color.cyan(diagnostic.file.fileName)}:${color.yellow(line + 1)}:${color.yellow(character + 1)}`; } - return ''; + return `${color.cyan(configPath)}`; } export const prettyTime = (seconds: number): string => {