What changed
A whole-app schematic pass ran out of memory at about 8 GB. I ran Angular's official schematic per directory instead.
NODE_OPTIONS=--max_old_space_size=10048 npx ng generate @angular/core:control-flow --path=src/app/components --defaults --interactive=false
I put CommonModule and the schematic's TypeScript formatting back. Eleven trackBy* methods now take a second unused argument because @for calls track fn($index, item).
| In templates | Count |
|---|---|
@if | 509 files |
@for | 323 files |
@switch | 15 files |
Live *ngIf / *ngFor / [ngSwitch] | 0. Comment leftovers only. |
Five files converted by hand
| File | Fix |
|---|---|
table.component.html |
Comments and a label sitting inside ngSwitch. Duplicate #noImageIcon refs. Moved both outside, then @switch. |
vip-offer-list.component.html |
Two templates named #unlocked_code. Renamed one to #unlocked_code_modal. |
post-payment.component.html |
[ngSwitch] on a wrapper, cases on an inner div. Switched the inner element. |
post-detail.component.html |
Missing </ng-container>. Closed it and reran the schematic. |
info-modal.component.html |
Broken *ngIf="icomoonClass; icon" became @if (icomoonClass) { ... } @else if (icon). |
How I checked it
| Check | Result |
|---|---|
| Main QA build | Pass, 60.6s |
| Perfect Crew QA build | Pass, 51.8s |
| SSR | 200 on home, login, pricing, about, contact, FAQ, creators, Perfect Crew home. No *ngIf in the HTML. |
| Logged-out browser | TopFans home hydrates, carousel Next works, login form renders, Perfect Crew header and posts show. |
| Logged-in product | Not run. |
Verification checklist
Creator account on a white-label site for logged-in checks. Private window for logged-out. Console open. Grouped by the modules in the 562-file diff. Edit preference is 64 templates. Skip that folder and you miss one of the largest chunks.
0 of 0 checked