reference-compiler-cli

Originally fromangular/angular
Installation
SKILL.md

Angular Compiler CLI (ngtsc) Architecture

Overview

The packages/compiler-cli package contains the Angular Compiler (Ivy), often referred to as ngtsc. It is a wrapper around the TypeScript compiler (tsc) that extends it with Angular-specific capabilities.

The core goal of ngtsc is to compile Angular decorators (like @Component, @Directive, @Pipe) into static properties on the class (Ivy instructions, e.g., static ɵcmp = ...). It also performs template type checking and ahead-of-time (AOT) compilation.

Mental Model

The compiler is designed as a lazy, incremental, and partial compilation pipeline.

  1. Wrapper Pattern: NgtscProgram wraps the standard ts.Program. It intercepts calls to act as a drop-in replacement for standard tooling.
  2. Traits System: Every class with an Angular decorator is considered a "Trait". The compiler manages the state of these traits through a state machine:
    • Pending: Detected but not processed.
    • Analyzed: Metadata extracted, template parsed (but dependencies not yet linked).
    • Resolved: Dependencies (directives/pipes in template) resolved, import cycles handled.
    • Skipped: Not an Angular class.
  3. Lazy Analysis: Analysis only happens when necessary (e.g., when diagnostics are requested or emit is prepared).
Related skills
Installs
9
GitHub Stars
5.4K
First Seen
10 days ago