Angular CLI: v22.0.0 Release

Release date:
June 3, 2026
Previous version:
v22.0.0-rc.3 (released June 1, 2026)
Magnitude:
469 Diff Delta
Contributors:
1 total committer
Data confidence:
Commits:

Top Contributors in v22.0.0

alan-agius4

Directory Browser for v22.0.0

All files are compared to previous version, v22.0.0-rc.3. Click here to browse diffs between other versions.

Loading File Browser...

Release Notes Published

@schematics/angular

| Commit | Description | | -- | -- | | feat - be60a63b7 | add migrate-karma-to-vitest update migration | | feat - 43505066e | add migration to add istanbul-lib-instrument | | feat - b2f7a038b | conditionally install istanbul coverage provider for Vitest migration | | feat - d227e6985 | migrate fake async to Vitest fake timers | | feat - d2aa9ede5 | migrate fakeAsync's flush behavior when used in beforeEach | | feat - f98cc82eb | rely on strict template default in generated workspaces | | feat - c9f408153 | set up fake timers in beforeEach instead of beforeAll | | feat - de630c2fc | stabilize refactor-jasmine-vitest schematic | | feat - 8d0805dd1 | update TSConfig globals during karma to vitest migration | | fix - 470e1f937 | add istanbul-lib-instrument to application/library generator dependencies | | fix - dc1238e5a | add trusted-proxy-headers migration | | fix - 6572a6944 | default components to OnPush change detection | | fix - aed407db8 | defer karma config deletion in Karma to Vitest migration | | fix - 4fbc60891 | preserve Jasmine stub-by-default semantics for bare spies | | fix - b3d838dfd | replace deprecated ChangeDetectionStrategy.Default with Eager | | fix - a7ac8e5f0 | support spy call arguments migration in refactor-jasmine-vitest | | fix - 7fb59eaa6 | use service decorator in ng generate |

@angular/cli

| Commit | Description | | -- | -- | | feat - 58c0978f6 | add support for Node.js 26.0.0 | | fix - a5c7c0b5f | reflect new minimum supported Node version in ng.js | | fix - a5e1e48db | update odd-numbered Node.js version warning condition for future releases | | fix - 93c3eb8fb | update zoneless migration tool to handle ChangeDetectionStrategy.Eager | | perf - a39a33128 | cache root manifest and resolve restricted package exports in ng add |

| Commit | Description | | -- | -- | | build - d0e9e8163 | update minimum supported Node.js versions | | refactor - 1f21e89d9 | remove @angular-devkit/architect-cli package | | refactor - b4885b851 | remove experimental Jest and Web Test Runner builders |

@angular-devkit/build-angular

| Commit | Description | | -- | -- | | refactor - b7940dbcb | deprecate Webpack builders |

@angular-devkit/build-webpack

| Commit | Description | | -- | -- | | refactor - 3d5daa45e | deprecate webpack and webpack-dev-server builders |

@angular/build

| Commit | Description | | -- | -- | | feat - e9aa7967b | add isolate option to unit-test builder | | feat - fe720cab6 | add process.env.PORT support to the dev server | | feat - 0781f7498 | add quiet option to suppress build noise in unit tests | | feat - cd2ad3c19 | enable chunk optimization by default with heuristics | | feat - 3007f46b7 | move istanbul-lib-instrument to optional peer dependency | | feat - af2c7e944 | rename experimentalPlatform to platform in application builder | | feat - 58c7c7a9d | subresource integrity validation for dynamically loaded modules | | feat - 73233dc5f | support Istanbul coverage in Vitest runner | | feat - 414320d02 | support runtime Zone.js detection in Vitest unit test runner | | fix - b85ec6798 | allow configuring Access-Control-Allow-Origin via headers option | | fix - edfa782d5 | use dynamic TestComponentRenderer for Vitest |

@angular/ssr

| Commit | Description | | -- | -- | | fix - 5adc92541 | enforce explicit opt-in for proxy headers | | fix - f85343925 | support all X-Forwarded-* headers when trustProxyHeaders is true | | fix - 8471ba634 | support server-side rendering configuration options | | refactor - 50b16a65b | deprecate CommonEngine APIs | | refactor - 27cd35561 | remove CSR fallback for invalid hosts |

@ngtools/webpack

| Commit | Description | | -- | -- | | refactor - 547ca515b | deprecate @ngtools/webpack loader and plugin |

Breaking Changes

  • Node.js v20 is no longer supported. The minimum supported Node.js versions are now v22.22.0 and v24.13.1.
  • The @angular-devkit/architect-cli package is no longer available. The architect CLI tool has been moved to the @angular-devkit/architect package.
  • The experimental @angular-devkit/build-angular:jest and @angular-devkit/build-angular:web-test-runner builders have been removed. ### @angular/build
  • The @angular/build:dev-server (ng serve) now assigns the highest priority to the PORT environment variable. This value will override any port configurations specified in angular.json or via the --port command-line flag. This includes the default port 4200.
  • istanbul-lib-instrument is now an optional peer dependency. Projects using karma with code coverage enabled will need to ensure that istanbul-lib-instrument is installed. Note: ng update will automatically add this dependency during the update process. ### @angular/ssr
  • The server no longer falls back to Client-Side Rendering (CSR) when a request fails host validation. Requests with unrecognized 'Host' headers will now return a 400 Bad Request status code. Users must ensure all valid hosts are correctly configured in the 'allowedHosts' option. ## Deprecations ### @angular-devkit/build-angular
  • Webpack builders in build-angular are deprecated. Use @angular/build builders instead. ### @angular-devkit/build-webpack
  • Webpack builders in build-webpack are deprecated. Use @angular/build builders instead. ### @angular/ssr
  • CommonEngine APIs are deprecated in favor of AngularNodeAppEngine or AngularAppEngine. ### @ngtools/webpack
  • @ngtools/webpack loader and plugin are deprecated. Use @angular/build instead.