Migration Hub
Angular Upgrade Guide
Every version. Every breaking change. Straight to the fix.
Angular ships a major version every six months (May and November). Each major version introduces
breaking changes that require both ng update schematics and manual code fixes.
This hub links every migration guide, organized by version pair, so you can jump directly to
what you need.
Angular 19 → 20 Migration
Angular 20 replaces @angular-devkit/build-angular with the new @angular/build
package, drops Webpack, and makes Vitest the recommended test runner. Key manual fix:
rename afterRender() to afterEveryRender().
Upgrade Angular 19 to 20: No Breaking Changes Missed
Walk through every step to migrate from Angular 19 to 20 — signals, control flow, the new @angular/build package, and the catches most guides skip.
Read →How to Fix Karma in Angular 20: Missing Builder Error Solved
Angular 20 removed the Karma builder. Learn exactly how to restore it temporarily or migrate to Vitest in 5 minutes.
Read →Angular Migration Path: Full Upgrade Guide from v15 to v21
Step-by-step checklists for upgrading Angular v15 to v21. Covers standalone migration, Signals adoption, Karma removal, and per-version breaking changes.
Read →What's New in Angular 20: Stable Signals, TS 5.8 & Zoneless
Signals are stable, @angular/build drops Webpack, and Zoneless reaches developer preview. Every breaking change and new API in Angular 20 explained.
Read →Angular 20 → 21 Migration
Angular 21 kills Karma for good, makes zone.js opt-out in new projects, and introduces
Signal Forms as an experimental API. Run ng generate @angular/core:karma-to-vitest
before anything else.
Angular 21 → 22 Migration
Angular 22 introduces native MCP support, @boundary error isolation,
and exhaustive type checking for agentic development workflows.
The framework now treats agents as first-class collaborators.
Angular 22 MCP + Skills: Build Agent-Safe Components
Stop agents from shipping broken code. Set up Angular 22 MCP + Skills in 5 minutes, apply 4 proven patterns, and let agents verify their own changes.
Read →Angular 22: Stop Agent Hallucinations with @boundary Types
Angular 22 closes the hallucination loop with @boundary isolation, exhaustive types, and MCP-verified builds. Full breakdown from Google I/O 2026.
Read →Before You Upgrade: Checklist
- Check update.angular.io for your exact version pair
- Verify your Node.js version meets the requirement (Angular 20+ requires Node 20+)
- Update TypeScript first — Angular 20+ requires TypeScript 5.8+
- Commit all changes before running
ng update— never run on a dirty tree - Run
ng update @angular/cli @angular/core— one major version at a time - Run your test suite immediately after — breaking changes surface fastest here
- If using Karma, migrate to Vitest:
ng generate @angular/core:karma-to-vitest
Frequently Asked Questions
How do I upgrade Angular to the latest version?
Run ng update @angular/cli @angular/core in your project root. Angular's update command handles dependency resolution and runs automatic migrations (schematics) that fix breaking changes in your code. Always check the Angular Update Guide at update.angular.io for version-specific steps and run the update one major version at a time — don't skip versions.
Can I skip major Angular versions when upgrading?
No. Angular's schematics run sequentially and depend on incremental migrations. Skipping from Angular 19 to Angular 21 directly will miss breaking-change migrations from v20, leaving your code in a broken state. Always upgrade one major version at a time: 19 → 20 → 21 → 22.
What are the biggest breaking changes from Angular 19 to 20?
The main Angular 20 breaking changes are: (1) afterRender() renamed to afterEveryRender() with no auto-migration; (2) TestBed.get() removed — use TestBed.inject(); (3) InjectFlags enum removed; (4) DOCUMENT token moved from @angular/common to @angular/core; (5) @angular-devkit/build-angular replaced by the new @angular/build package. Run ng update @angular/cli@20 @angular/core@20 for automatic migration.
What are the biggest breaking changes from Angular 20 to 21?
The main Angular 21 breaking changes are: (1) Karma is replaced by Vitest as the default test runner — run ng generate @angular/core:karma-to-vitest to migrate; (2) New apps exclude zone.js by default; (3) HttpClient is provided in the root injector by default. Migrate with ng update @angular/cli@21 @angular/core@21.
How long does an Angular migration take?
A standard Angular migration using ng update takes 15–60 minutes for most projects. Large enterprise apps with extensive Karma test suites or custom Webpack configurations may take 1–2 days, primarily due to migrating from Karma to Vitest. The schematics handle most of the boilerplate automatically.
Do I need to update TypeScript when upgrading Angular?
Yes. Each Angular major version requires a minimum TypeScript version. Angular 20 requires TypeScript 5.8+, Angular 21 requires TypeScript 5.8+, Angular 22 requires TypeScript 5.9+. Always update TypeScript before running ng update to avoid compilation errors during migration.
What is the Angular release schedule?
Angular follows a predictable 6-month major release cycle. Major versions are released in May and November each year. Angular 20 was released in May 2025, Angular 21 in November 2025, and Angular 22 in May 2026. Each major version is supported for 18 months (12 months active + 6 months LTS).