Angular Upgrade Guide

Compare Angular versions and see exactly what changes, what requires action, and what you can start using.

3Changes
1Breaking
3Actions
0Features
0Migration tools
Analyze your project

Check your package.json

UpgradePath detects relevant tools and selects them automatically.

Local only
Analyzed locally in your browser. Nothing is uploaded.
Project setup

What does your project use?

Select the tools in your project to include relevant dependency updates in this guide.

Angular migration plan

One major at a time

These guides cover each major's initial minor line (for example, 20.0.x). Commands select its latest patch. Later minors can have different toolchain ranges. Review the official update guide for the complete checklist.

Upgrade to Angular 19.0.x

Node.js
^18.19.1 || ^20.11.1 || ^22.0.0
TypeScript
>=5.5.0 <5.7.0
RxJS
^6.5.3 || ^7.4.0
ng update @angular/cli@~19.0 @angular/core@~19.0

Check this step's runtime first, review migration edits, then build and test before proceeding. Keep Angular core, compiler and CLI aligned. Update Material/CDK and other integrations with their own migrations when installed.

Official compatibility table ↗

Breaking Changes

Standalone declarations become the default

Action required
breakinghigh impact

Components, directives and pipes default to standalone. Existing NgModule declarations need an explicit opt-out.

Beforetypescript
@Component({ selector: "app-example", template: "Hello" })
export class ExampleComponent {}
Aftertypescript
// For a component still declared by an NgModule:
@Component({ standalone: false, selector: "app-example", template: "Hello" })
export class ExampleComponent {}
Migration

Run the CLI migration, then check NgModule declarations for standalone: false.

Behavior Changes

Review effect scheduling tests

Action required
behaviormedium impact

Effects can run at different points in change detection. Tests that assumed microtask timing may need adjustment.

Migration

Exercise signal-driven components and wait for Angular stability before asserting asynchronous UI changes.

Empty projection slots use fallback content

Action required
behaviormedium impact

createComponent renders fallback content when projectableNodes contains an empty slot.

Migration

Check dynamic component projection. Pass an empty text node when deliberately suppressing fallback content.