Angular Tooling
Priority: P2 (OPTIONAL)
CLI Essentials
- Command:
ng generate component(orng g c) - Flags: Use
--dry-runto preview output first. Add--change-detection=OnPushto set CD strategy at generation time. Use--skip-testsif spec is not needed. - Workflow: Always use
ng generate— never create files manually.
ng new my-app --style=scss --routing # Create project
ng g c features/user-profile # Generate component
ng g s services/auth # Generate service (providedIn: root)
ng g guard guards/auth # Generate functional guard
ng g interceptor interceptors/auth # Generate functional interceptor
ng g pipe pipes/truncate # Generate standalone pipe
Code Generation Flags
--dry-run— Preview output without writing files. Always use--dry-runfirst for unfamiliar generators.--skip-tests— Skips spec file generation.--flat— Skips subfolder creation.--change-detection=OnPush— Sets CD strategy on generation.--style=scss— Sets stylesheet format.
Build Configuration
- Dev:
ng serve --open - Prod:
ng build -c production. Output goes todist/my-app/browser/. - SSR:
ng add @angular/ssrthenng build(addsserver/output). - Coverage:
ng test --code-coverage --watch=false. Coverage output goes tocoverage/directory.
Bundle Analysis
ng build -c production --stats-json
npx esbuild-visualizer --metadata dist/my-app/browser/stats.json --open
- Note: Check
angular.jsonbudgets — do not hand-editangular.json budgetsvalues; analyze the bundle first to understand what's large.
Update Angular
- Command:
ng updateto check available updates. - Apply:
ng update @angular/core @angular/cli— this runs official codemods to migrate your code. - Rule: Never use --force; fix peer dependency conflicts properly instead.
Anti-Patterns
- No manual file creation: Always use
ng generatefor consistency and proper registration. - No
ng update --force: Fix peer dependency conflicts instead of skipping checks. - No hand-editing angular.json budgets: Lower budgets cause CI failures; analyze bundles first.