Merge pull request #27447 from mattmccutchen/issue-27117

Don't complain about `modules` and `outFile` options when `emitDeclarationOnly` is set.
This commit is contained in:
Ryan Cavanaugh
2018-10-01 15:50:08 -07:00
committed by GitHub
10 changed files with 103 additions and 2 deletions

View File

@@ -2579,7 +2579,7 @@ namespace ts {
}
// Cannot specify module gen that isn't amd or system with --out
if (outFile) {
if (outFile && !options.emitDeclarationOnly) {
if (options.module && !(options.module === ModuleKind.AMD || options.module === ModuleKind.System)) {
createDiagnosticForOptionName(Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0, options.out ? "out" : "outFile", "module");
}

View File

@@ -3265,7 +3265,7 @@ namespace ts {
const isSourceFileFromExternalLibrary = (file: SourceFile) => host.isSourceFileFromExternalLibrary(file);
if (options.outFile || options.out) {
const moduleKind = getEmitModuleKind(options);
const moduleEmitEnabled = moduleKind === ModuleKind.AMD || moduleKind === ModuleKind.System;
const moduleEmitEnabled = options.emitDeclarationOnly || moduleKind === ModuleKind.AMD || moduleKind === ModuleKind.System;
// Can emit only sources that are not declaration file and are either non module code or module with --module or --target es6 specified
return filter(host.getSourceFiles(), sourceFile =>
(moduleEmitEnabled || !isExternalModule(sourceFile)) && sourceFileMayBeEmitted(sourceFile, options, isSourceFileFromExternalLibrary));