Skip to content

Commit

Permalink
fix(compiler-cli): pass config path to ts.parseJsonConfigFileContent
Browse files Browse the repository at this point in the history
The config path is an optional argument to `ts.parseJsonConfigFileContent`. When passed, it is added to the returned object as `options.configFilePath`, and `tsc` itself passes it in.

The new TS 3.4 [incremental](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html) build functionality relies on this property being present: https://github.com/Microsoft/TypeScript/blob/025d82633915b67003ea38ba40b9239a19721c13/src/compiler/emitter.ts#L56-L57

When using The compiler-cli `readConfiguration` the config path option isn't passed, preventing consumers (like @ngtools/webpack) from obtaining a complete config object.

This PR fixes this omission and should allow JIT users of @ngtools/webpack to set the `incremental` option in their tsconfig and have it be used by the TS program.

I tested this in JIT and saw a small decrease in build times in a small project. In AOT the incremental option didn't seem to be used at all, due to how `ngc` uses the TS APIs.

Related to https://github.com/angular/angular-cli/issues/13941.
  • Loading branch information
filipesilva committed Apr 12, 2019
1 parent b057806 commit 7ca6bc8
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions packages/compiler-cli/src/perform_compile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,8 @@ export function readConfiguration(
readDirectory: ts.sys.readDirectory,
readFile: ts.sys.readFile
};
const parsed =
ts.parseJsonConfigFileContent(config, parseConfigHost, basePath, existingOptions);
const parsed = ts.parseJsonConfigFileContent(
config, parseConfigHost, basePath, existingOptions, projectFile);
const rootNames = parsed.fileNames.map(f => path.normalize(f));

const options = createNgCompilerOptions(basePath, config, parsed.options);
Expand Down

0 comments on commit 7ca6bc8

Please sign in to comment.