Migration
Composite Recipes
Recipes that include further recipes, often including the individual recipes below.
- Move
DOCUMENTimport to@angular/core - Remove IE11 polyfills
- Replace deep
zone.jsimports - Replace
node-sasswithsass
Recipes
- Add
@angular/localize/initpolyfill import - Add
ChangeDetectionStrategy.Eagerto components - Add TestBed module teardown
- Add
defaultConfigurationto build targets - Add generic type to
ModuleWithProviders - Add
istanbul-lib-instrumentfor Karma code coverage - Add
static: falseto view queries - Add
strictTemplates: falsetotsconfig.json - Add
trustProxyHeadersto the Angular app engine - Add
withNoIncrementalHydration()toprovideClientHydration() - Add
withXhr()toprovideHttpClient() - Enable AOT compilation in
angular.json - Make standalone flag explicit
- Migrate
@Input()to signal-basedinput() - Migrate
@Output()to signal-basedoutput() - Migrate constructor injection to
inject() - Migrate query decorators to signal-based functions
- Migrate to solution-style tsconfig
- Remove
BrowserModule.withServerTransition - Remove
ComponentFactoryResolver - Remove
aotSummariesfrom TestBed - Remove
defaultProjectfromangular.json - Remove empty
ngOnInitlifecycle hooks - Remove
enableIvycompiler option - Remove
entryComponents - Remove
es5BrowserSupportfromangular.json - Remove
extractCssfromangular.json - Remove
moduleId - Remove redundant
standalone: true - Remove
relativeLinkResolution - Remove
static: falsefrom view queries - Remove
withFetch()fromprovideHttpClient() - Remove zone.js polyfill from angular.json
- Rename
ChangeDetectionStrategy.DefaulttoChangeDetectionStrategy.Eager - Rename
ExperimentalPendingTaskstoPendingTasks - Rename
afterRendertoafterEveryRender - Rename file
- Rename
getAngularLib/setAngularLibtogetAngularJSGlobal/setAngularJSGlobal - Rename
provideExperimentalCheckNoChangesForDebugtoprovideCheckNoChangesForDebug - Rename
provideExperimentalZonelessChangeDetectiontoprovideZonelessChangeDetection - Rename
ssr.experimentalPlatformtossr.platforminangular.json - Replace
HttpClientModulewithprovideHttpClient() - Replace
InjectFlagswith options object - Replace
RouterLinkWithHrefwithRouterLink - Replace
TestBed.get()withTestBed.inject() - Replace
ViewEncapsulation.NativewithViewEncapsulation.ShadowDom - Replace
asyncwithwaitForAsync - Replace
createNgModuleRefwithcreateNgModule - Replace form classes with untyped variants
- Replace
initialNavigationoption values - Replace string-based
loadChildrenwith dynamicimport() - Replace
validator/asyncValidatorwith plural forms - Split a
model()that has a matching explicit output - Suppress the safe navigation extended diagnostics
- Update component
templateUrl - Update
tsconfig.jsonmodule settings for Ivy - Update
tsconfig.jsontarget toes2017