Angular Can I Use
Explore Angular features, CLI migrations, ng update migrations, MCP server features, and ESLint rules — all in one place.
Explore Angular features, CLI migrations, ng update migrations, MCP server features, and ESLint rules — all in one place.
Moves imports of `ApplicationConfig` from `@angular/platform-browser` to `@angular/core`
Migrates deprecated bootstrap options to providers.
Ensures that the Router.lastSuccessfulNavigation signal is now invoked
Updates the 'lib' property in tsconfig files to use 'es2022' or a more modern version.
Adds `BootstrapContext` to `bootstrapApplication` calls in `main.server.ts` to support server rendering.
Remove any karma configuration files that only contain the default content. The default configuration is automatically available without a specific project file.
Replaces usages of the deprecated Router.getCurrentNavigation method with the Router.currentNavigation signal
Converts the entire application to block control flow syntax
Moves imports of `DOCUMENT` from `@angular/common` to `@angular/core`
Replaces usages of the deprecated InjectFlags enum
Update workspace generation defaults to maintain previous style guide behavior.
Migrate imports of 'provideServerRendering' from '@angular/platform-server' to '@angular/ssr'.
Migrate 'provideServerRendering' to use 'withRoutes', and remove 'provideServerRouting' and 'provideServerRoutesConfig' from '@angular/ssr'.
Replaces usages of the deprecated TestBed.get method with TestBed.inject
Update 'moduleResolution' to 'bundler' in TypeScript configurations. You can read more about this, here: https://www.typescriptlang.org/tsconfig/#moduleResolution
Updates non-standalone Directives, Component and Pipes to 'standalone:false' and removes 'standalone:true' from those who are standalone
Updates ExperimentalPendingTasks to PendingTasks
Replaces `APP_INITIALIZER`, `ENVIRONMENT_INITIALIZER` & `PLATFORM_INITIALIZER` respectively with `provideAppInitializer`, `provideEnvironmentInitializer` & `providePlatformInitializer`.
Update '@angular/ssr' import paths to use the new '/node' entry point when 'CommonEngine' is detected.
Updates calls to afterRender with an explicit phase to the new API
Replace deprecated HTTP related modules with provider functions
Migrate application projects using '@angular-devkit/build-angular:browser' and '@angular-devkit/build-angular:browser-esbuild' to use the '@angular-devkit/build-angular:application' builder. Read more about this here: https://angular.dev/tools/cli/esbuild#using-the-application-builder
Updates two-way bindings that have an invalid expression to use the longform expression instead.
Add 'browser-sync' as dev dependency when '@angular-devkit/build-angular:ssr-dev-server' is used, as it is no longer a direct dependency of '@angular-devkit/build-angular'.
Angular v17 introduces a new control flow syntax that uses the @ and } characters. This migration replaces the existing usages with their corresponding HTML entities.
CompilerOption.useJit and CompilerOption.missingTranslation are unused under Ivy. This migration removes their usage
Replace usages of '@nguniversal/builders' with '@angular-devkit/build-angular'.
Replace usages of '@nguniversal/' packages with '@angular/ssr'.
Updates `TransferState`, `makeStateKey`, `StateKey` imports from `@angular/platform-browser` to `@angular/core`.
In Angular version 15.2, the guard and resolver interfaces (CanActivate, Resolve, etc) were deprecated. This migration removes imports and 'implements' clauses that contain them.
As of Angular v16, the `moduleId` property of `@Component` is deprecated as it no longer has any effect.
Update the '@angular-devkit/build-angular:server' builder configuration to disable 'buildOptimizer' for non optimized builds.
In Angular version 15, the deprecated `relativeLinkResolution` config parameter of the Router is removed. This migration removes all `relativeLinkResolution` fields from the Router config objects.
Remove Browserslist configuration files that matches the Angular CLI default configuration.
Remove exported `@angular/platform-server` `renderModule` method. The `renderModule` method is now exported by the Angular CLI.
Since Angular v15, the `RouterLink` contains the logic of the `RouterLinkWithHref` directive. This migration replaces all `RouterLinkWithHref` references with `RouterLink`.
Remove no longer needed require calls in Karma builder main file.
Update TypeScript compiler `target` and set `useDefineForClassFields`. These changes are for IDE purposes as TypeScript compiler options `target` and `useDefineForClassFields` are set to `ES2022` and `false` respectively by the Angular CLI. To control ECMA version and features use the Browerslist configuration.
Remove options from 'angular.json' that are no longer supported by the official builders.
In Angular version 14, the `pathMatch` property of `Routes` was updated to be a strict union of the two valid options: `'full'|'prefix'`. `Routes` and `Route` variables need an explicit type so TypeScript does not infer the property as the looser `string`.
Remove 'defaultProject' option from workspace configuration. The project to use will be determined from the current working directory.
Remove 'showCircularDependencies' option from browser and server builders.
Replace 'defaultCollection' option in workspace configuration with 'schematicCollections'.
As of Angular version 14, Forms model classes accept a type parameter, and existing usages must be opted out to preserve backwards-compatibility.
Update Angular packages 'dependencies' and 'devDependencies' version prefix to '^' instead of '~'.
Remove 'package.json' files from library projects secondary entrypoints.
Update TypeScript compilation target to 'ES2020'.
As of Angular version 13, `entryComponents` are no longer necessary.
Remove polyfills required only for Internet Explorer which is no longer supported.
Migrates `[routerLink]=""` in templates to `[routerLink]="[]"` because these links are likely intended to route to the current page with updated fragment/query params.
Remove no longer valid Angular schematic options from `angular.json`.
In Angular version 13, the `teardown` flag in `TestBed` will be enabled by default. This migration automatically opts out existing apps from the new teardown behavior.
Remove deprecated options from 'angular.json' that are no longer present in v13.
Updating '.gitignore' to include '.angular/cache'.
Update library projects to be published in partial mode and removed deprecated options from ng-packagr configuration.
Replace the deprecated '--prod' in package.json scripts.
Automatically migrates shadow-piercing selector from `/deep/` to the recommanded alternative `::ng-deep`.
Remove invalid 'skipTests' option in '@schematics/angular:module' Angular schematic options.
In Angular version 12, the type of ActivatedRouteSnapshot.fragment is nullable. This migration automatically adds non-null assertions to it.
Lazy loading syntax migration. Update lazy loading string syntax to use dynamic imports.
Remove deprecated ViewEngine-based i18n build and extract options. Options present in the configuration will be converted to use non-deprecated options.
Remove 'emitDecoratorMetadata' TypeScript compiler option. Decorator metadata is no longer needed by Angular. Read more about this here: https://www.typescriptlang.org/docs/handbook/decorators.html#metadata
Remove deprecated options from 'angular.json' that are no longer present in v12.
Updates Web Worker consumer usage to use the new syntax supported directly by Webpack 5.
Update 'zone.js' to version 0.11.x. Read more about this here: https://github.com/angular/angular/blob/master/packages/zone.js/CHANGELOG.md#breaking-changes-since-zonejs-v0111
`XhrFactory` has been moved from `@angular/common/http` to `@angular/common`.
Removes `canActivate` from a `Route` config when `redirectTo` is also present
In Angular version 11, the type of `AbstractControl.parent` can be `null` to reflect the runtime value more accurately. This migration automatically adds non-null assertions to existing accesses of the `parent` property on types like `FormControl`, `FormArray` and `FormGroup`.
Add 'declarationMap' compiler options for non production library builds.
ViewEncapsulation.Native has been removed as of Angular version 11. This migration replaces any usages with ViewEncapsulation.ShadowDom.
NavigationExtras omissions migration. In version 11, some unsupported properties were omitted from the `extras` parameter of the `Router.navigateByUrl` and `Router.createUrlTree` methods.
Replace deprecated library builder '@angular-devkit/build-ng-packagr'.
Updates the `initialNavigation` property for `RouterModule.forRoot`.
NavigationExtras.preserveQueryParams has been removed as of Angular version 11. This migration replaces any usages with the appropriate assignment of the queryParamsHandler key.
The default value for `relativeLinkResolution` is changing from 'legacy' to 'corrected'. This migration updates `RouterModule` configurations that use the default value to now specifically use 'legacy' to prevent breakages when updating.
Remove deprecated options from 'angular.json' that are no longer present in v11.
Update workspace dependencies to match a new v11 project.
`async` to `waitForAsync` migration. The `async` testing function has been renamed to `waitForAsync` to avoid confusion with the native `async` keyword.
Removing "Solution Style" TypeScript configuration file support.
Update 'module' and 'target' TypeScript compiler options. Read more about this here: https://v10.angular.io/guide/migration-update-module-and-target-compiler-options
Remove deprecated 'es5BrowserSupport' browser builder option. The inclusion for ES5 polyfills will be determined from the browsers listed in the browserslist configuration.
Update Browserslist configuration file name to '.browserslistrc' from deprecated 'browserslist'.
Replace deprecated and removed 'styleext' and 'spec' Angular schematic options with 'style' and 'skipTests', respectively.
Add the tslint deprecation rule to tslint JSON configuration files.
Update tslint to version 6 and adjust rules to maintain existing behavior.
Remove deprecated options from 'angular.json' that are no longer present in v10.
Update library projects to use tslib version 2 as a direct dependency. Read more about this here: https://v10.angular.io/guide/migration-update-libraries-tslib
Update workspace dependencies to match a new v10 project.
Replace deprecated 'styleext' and 'spec' Angular schematic options.
Static flag migration. Removes the `static` flag from dynamic queries. As of Angular 9, the "static" flag defaults to false and is no longer required for your view and content queries. Read more about this here: https://v9.angular.io/guide/migration-dynamic-flag
Lazy loading syntax migration. Update lazy loading syntax to use dynamic imports.
Missing @Injectable and incomplete provider definition migration. In Angular 9, enforcement of @Injectable decorators for DI is a bit stricter and incomplete provider definitions behave differently. Read more about this here: https://v9.angular.io/guide/migration-injectable
ModuleWithProviders migration. In Angular 9, the ModuleWithProviders type without a generic has been deprecated. This migration adds the generic where it is missing. Read more about this here: https://v9.angular.io/guide/migration-module-with-providers
Migrates usages of Renderer to Renderer2
Undecorated classes with decorated fields migration. As of Angular 9, it is no longer supported to have Angular field decorators on a class that does not have an Angular decorator. Read more about this here: https://v9.angular.io/guide/migration-undecorated-classes
Undecorated classes with DI migration. As of Angular 9, it is no longer supported to use Angular DI on a class that does not have an Angular decorator. Read more about this here: https://v9.angular.io/guide/migration-undecorated-classes
Angular Workspace migration. Update an Angular CLI workspace to version 9.
Migrates DOCUMENT Injection token from platform-browser imports to common import
Migrates ViewChild and ContentChild to explicit query timing
Warns developers if values are assigned to template variables
Optional migration to update Angular CLI workspace configurations to 'production' mode by default.