Merge pull request #24056 from a-tarasyuk/bug/23891-declarationDir-needs-to-be-handled-in-excludeSpecs

Add declarationDir to excludeSpec
This commit is contained in:
Mohamed Hegazy
2018-05-11 12:56:15 -07:00
committed by GitHub
2 changed files with 29 additions and 4 deletions

View File

@@ -1607,10 +1607,12 @@ namespace ts {
createCompilerDiagnosticOnlyIfJson(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "exclude", "Array");
}
}
else {
const outDir = raw.compilerOptions && raw.compilerOptions.outDir;
if (outDir) {
excludeSpecs = [outDir];
else if (raw.compilerOptions) {
const outDir = raw.compilerOptions.outDir;
const declarationDir = raw.compilerOptions.declarationDir;
if (outDir || declarationDir) {
excludeSpecs = [outDir, declarationDir].filter(d => !!d);
}
}

View File

@@ -217,6 +217,29 @@ namespace ts {
assertParseFileList(tsconfigWithExclude, "tsconfig.json", rootDir, allFiles, allFiles);
});
it("exclude declarationDir unless overridden", () => {
const tsconfigWithoutExclude =
`{
"compilerOptions": {
"declarationDir": "declarations"
}
}`;
const tsconfigWithExclude =
`{
"compilerOptions": {
"declarationDir": "declarations"
},
"exclude": [ "types" ]
}`;
const rootDir = "/";
const allFiles = ["/declarations/a.d.ts", "/a.ts"];
const expectedFiles = ["/a.ts"];
assertParseFileList(tsconfigWithoutExclude, "tsconfig.json", rootDir, allFiles, expectedFiles);
assertParseFileList(tsconfigWithExclude, "tsconfig.json", rootDir, allFiles, allFiles);
});
it("implicitly exclude common package folders", () => {
assertParseFileList(
`{}`,