VVersions.dev

Upgrade to Angular 22

Angular 22 is the current active release as of June 2026; 21 and 20 are in LTS, and 19, 18, 17, and 16 are end-of-life. Whatever supported version you target, ng update walks you there one major at a time. This hub explains the support windows, the one-major-at-a-time policy, and the headline changes (zoneless, stable signals, Signal Forms) so you can pick a target and follow the right source-to-target path.

Version upgradeDifficulty: moderateEffort: 0.5–1 day per major for a typical appmedium risk

Last verified · Updated May 22, 2026

Angular 22 shipped June 3, 2026 and is the current active release. Angular 21 (Nov 2025) and 20 (May 2025) are in LTS — security and critical fixes only — while 19, 18, 17, and 16 are end-of-life and unpatched. Angular's support model is 18 months per major: 6 months active, then 12 months LTS. Upgrade to a supported major, and let ng update do the mechanical work one major at a time.

⛔ Angular 19 and earlier are end-of-life

As of June 2026, Angular 19, 18, 17, and 16 receive no security patches. Only 22 (active) and 21/20 (LTS) are supported. If you are on 19 or below, prioritize this upgrade as a security obligation.

Pick a supported target

Angular 22 gives the longest runway (active now, then LTS). Angular 21 (LTS through May 19, 2027) or 20 (LTS through November 28, 2026) are acceptable if a dependency is not yet 22-ready, but plan to reach 22. Whichever you choose, you still upgrade one major at a time — the gap from your current version determines how many ng update hops you run.

Angular support status (June 2026)

VersionReleasedStatusSupport ends
22Jun 3, 2026ActiveActive now; LTS afterward
21Nov 19, 2025LTSMay 19, 2027
20May 28, 2025LTSNov 28, 2026
19Nov 19, 2024End-of-lifeEnded May 19, 2026
18May 22, 2024End-of-lifeEnded Nov 21, 2025
17 / 162023End-of-lifeEnded 2024–2025

Headline changes since Angular 18

  • Angular 19: standalone components are the default; linkedSignal and the resource() async API arrive; incremental hydration lands.
  • Angular 20: effect(), linkedSignal(), and toSignal() are stable — full signal reactivity is production-ready; zoneless change detection enters developer preview; httpResource() and incremental hydration mature.
  • Angular 21: new apps drop zone.js by default; Signal Forms ship experimentally; Vitest becomes the default test runner; Angular Aria enters developer preview.
  • Angular 22: zoneless change detection and Signal Forms are stable; OnPush is the default change-detection strategy for new components; Angular Aria is stable.
  • The @if/@for/@switch control flow (default since v17) and standalone APIs remain the recommended baseline.

One major at a time

ng update only supports a single major-version jump per run

# Check what ng update proposes for your project
ng update

# Upgrade one major at a time — never skip. Example from 18 toward 22:
ng update @angular/core@19 @angular/cli@19
# verify, commit, then 20, 21, 22 in turn:
ng update @angular/core@20 @angular/cli@20
ng update @angular/core@21 @angular/cli@21
ng update @angular/core@22 @angular/cli@22

ℹ ng update is one major at a time by design

ng update only runs when the target is within one major of the installed version, so reaching 22 from an older release means a sequence of runs. Each run applies that major's schematics; skipping versions skips migrations the CLI would otherwise perform.

Before you start

  • Note your current @angular/core / @angular/cli major and how many hops separate it from your target
  • Confirm a green ng build and ng test baseline before any bump
  • Check that key third-party Angular libraries publish versions for your target major
  • Plan to land on a supported major (22, or 21/20 LTS) — not an end-of-life version

Source-to-target upgrade paths

Version timeline

  • 22 — current, active (released 2026-06-03)

Official sources

Copy-ready AI prompts

Structured prompts for an AI coding assistant. Inspect first, then execute incrementally, and keep a human in the review loop.

Repo inspection: Repo inspection prompt

You are helping migrate an Angular codebase from an older Angular major to Angular 22.

Do not edit files yet. First inspect the repository and report:
1. The exact @angular/core and @angular/cli versions in package.json and the lockfile (or the angular.js version for AngularJS apps).
2. The architecture: NgModules vs standalone components, the router in use ($routeProvider, ui-router, or @angular/router), and any $scope/controller code still present.
3. Components, services, and directives grouped by complexity so a migration order can be planned.
4. Third-party libraries and whether they have versions compatible with the target.
5. Build, lint, and test commands (ng build, ng test, ng lint, or the legacy toolchain).

Return: a migration risk summary, the modules/components most likely to break, a suggested incremental order, the commands to run before editing, and any questions that need human confirmation.

Safety: Inspection only. The agent must not modify files in this step.

Works with Claude Code, Cursor, GitHub Copilot.

Migration execution: Migration execution prompt

Migrate this codebase from an older Angular major to Angular 22, one component or concern at a time.

Work incrementally and pause for review after each unit: stand up the hybrid/bridge layer first, then migrate the lowest-risk leaf component, rewrite its template and state, wire it back into the host app, and verify it renders identically before moving on. Convert services and routing only after the components that depend on them are migrated.

After each step run the project's build, lint, and tests, and report results before continuing. Do not refactor unrelated code or bundle multiple components into one change.

Safety: Apply changes incrementally and keep each step reviewable. Never bundle unrelated refactors or migrate multiple components at once.

Works with Claude Code, Cursor, GitHub Copilot.

Frequently asked questions

What is the latest Angular version?

Angular 22, released June 3, 2026, is the current active release. Angular 21 and 20 are in LTS (security and critical fixes only), and Angular 19 and earlier are end-of-life.

Can I jump several majors at once?

No. ng update only supports moving within one major version per run. To go from, say, 18 to 22 you run ng update for 19, then 20, 21, and 22 in sequence, verifying after each. Each major's schematics apply only during that step.