fix(compiler-cli): ngtsc shim files not being generated on case-insensitive platforms (#27466)

Common insensitive platforms are `win32/win64` (see:
[here](3e4c5c95ab/src/compiler/sys.ts (L681-L682)))

Currently when running `bazel build packages/core --define=compile=aot`, the `compiler-cli` will throw because it cannot find the `index.ngfactory.ts` file in the compiler host. This is because the shim host wrapper is not properly generating the requested `ngfactory` file.

This happens because we call `getCanonicalFileName` that returns a path that is different to the actual program filenames that are used to construct a map of generated files. Since the generators always use the paths which are not "canonical" and pases them internally like that, we can just stop manually calling `getCanonicalFileName`.

PR Close #27466
This commit is contained in:
Paul Gschwendtner 2018-12-04 23:35:28 +01:00 committed by Igor Minar
parent 091a504377
commit ca1c430f30
1 changed files with 1 additions and 2 deletions

View File

@ -53,10 +53,9 @@ export class GeneratedShimsHostWrapper implements ts.CompilerHost {
fileName: string, languageVersion: ts.ScriptTarget, fileName: string, languageVersion: ts.ScriptTarget,
onError?: ((message: string) => void)|undefined, onError?: ((message: string) => void)|undefined,
shouldCreateNewSourceFile?: boolean|undefined): ts.SourceFile|undefined { shouldCreateNewSourceFile?: boolean|undefined): ts.SourceFile|undefined {
const canonical = this.getCanonicalFileName(fileName);
for (let i = 0; i < this.shimGenerators.length; i++) { for (let i = 0; i < this.shimGenerators.length; i++) {
const generator = this.shimGenerators[i]; const generator = this.shimGenerators[i];
const originalFile = generator.getOriginalSourceOfShim(canonical); const originalFile = generator.getOriginalSourceOfShim(fileName);
if (originalFile !== null) { if (originalFile !== null) {
// This shim generator has recognized the filename being requested, and is now responsible // This shim generator has recognized the filename being requested, and is now responsible
// for generating its contents, based on the contents of the original file it has requested. // for generating its contents, based on the contents of the original file it has requested.