You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We currently expect Ivy to remain behind the flag until it's feature complete and battle tested at Google. In the meantime you can check out this Hello World demo.
Implementation Status
The work can be divided into three categories:
@angular/compiler-cli: TypeScript transformer pipeline which includes two command line tools:
ngtsc: (Angular TypeScript Compiler) Angular compiler which strips out @Component (and friends) and replaces it with ɵɵdefineComponent (and friends).
ngcc: (Angular Compatibility Compiler) NPM upgrade compiler which reads the STORING_METADATA_IN_D.TS.json files and .js files and adds ɵɵdefineComponent (and friends) into the node_module. This in effect converts a pre-ivy module into ivy module.
@angular/compiler: Ivy Compiler which converts decorator into ivy
@angular/core: Decorators which can be patched with @angular/compiler.
@angular/compiler-cli changes
ngtsc TSC compiler transformer
TSC transformer which removes and converts @Pipe, @Component, @Directive and @NgModule
to the corresponding ɵɵdefinePipe, ɵɵdefineComponent, ɵɵdefineDirective and ɵɵdefineInjector.
✅ NgModuleCompiler: Translates @NgModule => ɵɵdefineInjector (and ɵɵdefineNgModule only in jit)
❌ Documentation
@angular/core changes
The goal is for the @Component (and friends) to be the compiler of template. Since decorators are functions which execute during parsing of the .js file, the decorator can compile the template into Ivy. The AoT compiler's job is to remove the @Component and replace it with call to ɵɵdefineComponent.
✅ @angular/compiler can patch itself onto:
✅ @Injectable
✅ @NgModule
✅ @Pipe
✅ @Directive
✅ @Component
✅ ResourceLoader.resolved: Promise<> Returns true if all templateUrls and styleUrl have been resolved and application is ready to be bootstrapped.
Testing / Debugging
✅ in debug mode publish components into DOM nodes for easier debugging.