Skip to content

library builder: template type errors are not reported when .angular/cache is warm #34123

Description

@thekhegay

Command

build

Is this a regression?

  • Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was

No response

Description

Found while tesing #34106 cc @alan-agius4

With warm .angular/cache, editing only a components external template skips template type-checking: broken template builds with exit 0 and ends up in FESM.
Cold build fails correctly and so does ng-packagr in same setup.

Worst in CI where caches are restored

Minimal Reproduction

  1. Library with one component using templateUrl, strictTemplates on
  2. ng build mylib passes and fills .angular/cache
  3. Edit only the template to <p>{{ nope }}</p>
  4. ng build mylib again. getting exit 0 broken template in fesm2022/mylib.mjs
  5. rm -rf .angular/cache then build again, getting TS2339 as expected

P.S. Same on ngwr: [hidden]="notAProperty" in alert.html builds with a warm cache.

Exception or Error


Your Environment

@angular/build built from #34106 (e1fa5796) with the repo's own bazel build

Angular CLI 22.1.8, 
Angular 22.1.7, 
Node 24.16.0, 
pnpm 11, 
macOS 25.6, 
14 cores, 
24 GB

Anything else relevant?

library-compilation.ts only type-checks files in affectedFiles from the restored builder program, and TS doesn't know about .html, so nothing is checked.

aot-compilation.ts handles this with usingBuildInfo / includeTTC in findAffectedFiles;

porting that locally fixed it (warm + broken fails, warm + valid still passes and re-emits).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions