Skip to content

Commit e4e6672

Browse files
committed
When tsc --build --clean, only remove tsbuildinfo if its incremental build
1 parent 0cf9e30 commit e4e6672

File tree

4 files changed

+19
-36
lines changed

4 files changed

+19
-36
lines changed

src/compiler/tsbuildPublic.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2033,21 +2033,19 @@ namespace ts {
20332033
reportParseConfigFileDiagnostic(state, resolvedPath);
20342034
continue;
20352035
}
2036+
const buildInfoPath = getTsBuildInfoEmitOutputFilePath(parsed.options);
2037+
if (buildInfoPath) {
2038+
// Only delete buildInfo as thats sufficient
2039+
removeOutput(buildInfoPath, resolvedPath);
2040+
continue;
2041+
}
20362042
const outputs = getAllProjectOutputs(parsed, !host.useCaseSensitiveFileNames());
20372043
if (!outputs.length) continue;
20382044
const inputFileNames = new Set(parsed.fileNames.map(f => toPath(state, f)));
20392045
for (const output of outputs) {
20402046
// If output name is same as input file name, do not delete and ignore the error
20412047
if (inputFileNames.has(toPath(state, output))) continue;
2042-
if (host.fileExists(output)) {
2043-
if (filesToDelete) {
2044-
filesToDelete.push(output);
2045-
}
2046-
else {
2047-
host.deleteFile(output);
2048-
invalidateProject(state, resolvedPath, ConfigFileProgramReloadLevel.None);
2049-
}
2050-
}
2048+
removeOutput(output, resolvedPath);
20512049
}
20522050
}
20532051

@@ -2056,6 +2054,18 @@ namespace ts {
20562054
}
20572055

20582056
return ExitStatus.Success;
2057+
2058+
function removeOutput(output: string, resolvedPath: ResolvedConfigFilePath) {
2059+
if (host.fileExists(output)) {
2060+
if (filesToDelete) {
2061+
filesToDelete.push(output);
2062+
}
2063+
else {
2064+
host.deleteFile(output);
2065+
invalidateProject(state, resolvedPath, ConfigFileProgramReloadLevel.None);
2066+
}
2067+
}
2068+
}
20592069
}
20602070

20612071
function invalidateProject(state: SolutionBuilderState, resolved: ResolvedConfigFilePath, reloadLevel: ConfigFileProgramReloadLevel) {

tests/baselines/reference/tsbuild/outFile/clean-projects.js

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -596,20 +596,8 @@ Output::
596596
exitCode:: ExitStatus.Success
597597

598598

599-
//// [/src/2/second-output.d.ts] unlink
600-
//// [/src/2/second-output.d.ts.map] unlink
601-
//// [/src/2/second-output.js] unlink
602-
//// [/src/2/second-output.js.map] unlink
603599
//// [/src/2/second-output.tsbuildinfo] unlink
604-
//// [/src/first/bin/first-output.d.ts] unlink
605-
//// [/src/first/bin/first-output.d.ts.map] unlink
606-
//// [/src/first/bin/first-output.js] unlink
607-
//// [/src/first/bin/first-output.js.map] unlink
608600
//// [/src/first/bin/first-output.tsbuildinfo] unlink
609-
//// [/src/third/thirdjs/output/third-output.d.ts] unlink
610-
//// [/src/third/thirdjs/output/third-output.d.ts.map] unlink
611-
//// [/src/third/thirdjs/output/third-output.js] unlink
612-
//// [/src/third/thirdjs/output/third-output.js.map] unlink
613601
//// [/src/third/thirdjs/output/third-output.tsbuildinfo] unlink
614602

615603

tests/baselines/reference/tsbuild/outFile/cleans-till-project-specified.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -596,8 +596,4 @@ Output::
596596
exitCode:: ExitStatus.Success
597597

598598

599-
//// [/src/2/second-output.d.ts] unlink
600-
//// [/src/2/second-output.d.ts.map] unlink
601-
//// [/src/2/second-output.js] unlink
602-
//// [/src/2/second-output.js.map] unlink
603599
//// [/src/2/second-output.tsbuildinfo] unlink

tests/baselines/reference/tsbuild/sample1/removes-all-files-it-built.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -390,19 +390,8 @@ Output::
390390
exitCode:: ExitStatus.Success
391391

392392

393-
//// [/src/core/anotherModule.d.ts] unlink
394-
//// [/src/core/anotherModule.d.ts.map] unlink
395-
//// [/src/core/anotherModule.js] unlink
396-
//// [/src/core/index.d.ts] unlink
397-
//// [/src/core/index.d.ts.map] unlink
398-
//// [/src/core/index.js] unlink
399393
//// [/src/core/tsconfig.tsbuildinfo] unlink
400-
//// [/src/logic/index.d.ts] unlink
401-
//// [/src/logic/index.js] unlink
402-
//// [/src/logic/index.js.map] unlink
403394
//// [/src/logic/tsconfig.tsbuildinfo] unlink
404-
//// [/src/tests/index.d.ts] unlink
405-
//// [/src/tests/index.js] unlink
406395
//// [/src/tests/tsconfig.tsbuildinfo] unlink
407396

408397

0 commit comments

Comments
 (0)