|
| 1 | +<a name="22.0.0"></a> |
| 2 | + |
| 3 | +# 22.0.0 (2026-06-03) |
| 4 | + |
| 5 | +## Breaking Changes |
| 6 | + |
| 7 | +### |
| 8 | + |
| 9 | +- Node.js v20 is no longer supported. The minimum supported Node.js versions are now v22.22.0 and v24.13.1. |
| 10 | +- The `@angular-devkit/architect-cli` package is no longer available. The `architect` CLI tool has been moved to the `@angular-devkit/architect` package. |
| 11 | +- The experimental `@angular-devkit/build-angular:jest` and `@angular-devkit/build-angular:web-test-runner` builders have been removed. |
| 12 | + |
| 13 | +### @angular/build |
| 14 | + |
| 15 | +- 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. |
| 16 | +- `istanbul-lib-instrument` is now an optional peer dependency. |
| 17 | + 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. |
| 18 | + |
| 19 | +### @angular/ssr |
| 20 | + |
| 21 | +- 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. |
| 22 | + |
| 23 | +## Deprecations |
| 24 | + |
| 25 | +### @angular-devkit/build-angular |
| 26 | + |
| 27 | +- Webpack builders in build-angular are deprecated. Use @angular/build builders instead. |
| 28 | + |
| 29 | +### @angular-devkit/build-webpack |
| 30 | + |
| 31 | +- Webpack builders in build-webpack are deprecated. Use @angular/build builders instead. |
| 32 | + |
| 33 | +### @angular/ssr |
| 34 | + |
| 35 | +- CommonEngine APIs are deprecated in favor of AngularNodeAppEngine or AngularAppEngine. |
| 36 | + |
| 37 | +### @ngtools/webpack |
| 38 | + |
| 39 | +- @ngtools/webpack loader and plugin are deprecated. Use @angular/build instead. |
| 40 | + |
| 41 | +### @angular/cli |
| 42 | + |
| 43 | +| Commit | Type | Description | |
| 44 | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------------------- | |
| 45 | +| [58c0978f6](https://github.com/angular/angular-cli/commit/58c0978f658ee5fa7232abd8e2eb7f146e4eb6bb) | feat | add support for Node.js 26.0.0 | |
| 46 | +| [a5c7c0b5f](https://github.com/angular/angular-cli/commit/a5c7c0b5fda4ae0c00351ba34e5f39dab2c6baee) | fix | reflect new minimum supported Node version in ng.js | |
| 47 | +| [a5e1e48db](https://github.com/angular/angular-cli/commit/a5e1e48db759e9ffcaa89f04504f5f93a1afdda4) | fix | update odd-numbered Node.js version warning condition for future releases | |
| 48 | +| [93c3eb8fb](https://github.com/angular/angular-cli/commit/93c3eb8fb2a0d531f18779152b0a62e9b73dbb23) | fix | update zoneless migration tool to handle `ChangeDetectionStrategy.Eager` | |
| 49 | +| [a39a33128](https://github.com/angular/angular-cli/commit/a39a33128fb56e9c65ea89e06c4f127252d3b220) | perf | cache root manifest and resolve restricted package exports in ng add | |
| 50 | + |
| 51 | +### @schematics/angular |
| 52 | + |
| 53 | +| Commit | Type | Description | |
| 54 | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------------------- | |
| 55 | +| [be60a63b7](https://github.com/angular/angular-cli/commit/be60a63b7b8fdea26bfd3329ce54d321334db2d2) | feat | add migrate-karma-to-vitest update migration | |
| 56 | +| [43505066e](https://github.com/angular/angular-cli/commit/43505066e2350ca875051bb0f9991da8003c9247) | feat | add migration to add istanbul-lib-instrument | |
| 57 | +| [b2f7a038b](https://github.com/angular/angular-cli/commit/b2f7a038b4a321e4e1b0b340cd09425f948c77ad) | feat | conditionally install istanbul coverage provider for Vitest migration | |
| 58 | +| [d227e6985](https://github.com/angular/angular-cli/commit/d227e6985ef5540e0eea2571577ee2b9be0d3c64) | feat | migrate fake async to Vitest fake timers | |
| 59 | +| [d2aa9ede5](https://github.com/angular/angular-cli/commit/d2aa9ede55a3e16b61ce6ae60dba6c8ea8954358) | feat | migrate fakeAsync's flush behavior when used in beforeEach | |
| 60 | +| [f98cc82eb](https://github.com/angular/angular-cli/commit/f98cc82eb0f46986e61b4f94b57dcd36e4eaf215) | feat | rely on strict template default in generated workspaces | |
| 61 | +| [c9f408153](https://github.com/angular/angular-cli/commit/c9f4081533f6f114846b88a152a9d5dc7363d680) | feat | set up fake timers in beforeEach instead of beforeAll | |
| 62 | +| [de630c2fc](https://github.com/angular/angular-cli/commit/de630c2fcee22622942478c98117d8f473d8c894) | feat | stabilize refactor-jasmine-vitest schematic | |
| 63 | +| [8d0805dd1](https://github.com/angular/angular-cli/commit/8d0805dd1750cb16af620811dc01b40e46ad030e) | feat | update TSConfig globals during karma to vitest migration | |
| 64 | +| [470e1f937](https://github.com/angular/angular-cli/commit/470e1f937492e73971dea9c39af83368caf74e42) | fix | add istanbul-lib-instrument to application/library generator dependencies | |
| 65 | +| [dc1238e5a](https://github.com/angular/angular-cli/commit/dc1238e5a4c9ab5902735e3d74bc7c5cc57553bd) | fix | add trusted-proxy-headers migration | |
| 66 | +| [6572a6944](https://github.com/angular/angular-cli/commit/6572a69443356ff0022e6ce162915125fee0e3bb) | fix | default components to OnPush change detection | |
| 67 | +| [aed407db8](https://github.com/angular/angular-cli/commit/aed407db8be6bc7591fb82f10c79586cbd072a8a) | fix | defer karma config deletion in Karma to Vitest migration | |
| 68 | +| [4fbc60891](https://github.com/angular/angular-cli/commit/4fbc6089174142623fbd28cc68cede181074fab5) | fix | preserve Jasmine stub-by-default semantics for bare spies | |
| 69 | +| [b3d838dfd](https://github.com/angular/angular-cli/commit/b3d838dfdb2adc3bd035b495f7f9457d742d73a4) | fix | replace deprecated `ChangeDetectionStrategy.Default` with `Eager` | |
| 70 | +| [a7ac8e5f0](https://github.com/angular/angular-cli/commit/a7ac8e5f0a268994a8fcfebbf56f76e994b6207d) | fix | support spy call arguments migration in refactor-jasmine-vitest | |
| 71 | +| [7fb59eaa6](https://github.com/angular/angular-cli/commit/7fb59eaa65a8d7e880b6f44d715b2aeaff9301ca) | fix | use service decorator in ng generate | |
| 72 | + |
| 73 | +### |
| 74 | + |
| 75 | +| Commit | Type | Description | |
| 76 | +| --------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------- | |
| 77 | +| [d0e9e8163](https://github.com/angular/angular-cli/commit/d0e9e81639be33c453f1ef66c7c1c8ea4fe543c2) | build | update minimum supported Node.js versions | |
| 78 | +| [1f21e89d9](https://github.com/angular/angular-cli/commit/1f21e89d99c191642627df6842402644a1bf26ee) | refactor | remove `@angular-devkit/architect-cli` package | |
| 79 | +| [b4885b851](https://github.com/angular/angular-cli/commit/b4885b851226709ae4146070122806e14a3d5eb9) | refactor | remove experimental Jest and Web Test Runner builders | |
| 80 | + |
| 81 | +### @angular-devkit/build-angular |
| 82 | + |
| 83 | +| Commit | Type | Description | |
| 84 | +| --------------------------------------------------------------------------------------------------- | -------- | -------------------------- | |
| 85 | +| [b7940dbcb](https://github.com/angular/angular-cli/commit/b7940dbcb40291be4de5b31e8a8001165459a7d4) | refactor | deprecate Webpack builders | |
| 86 | + |
| 87 | +### @angular-devkit/build-webpack |
| 88 | + |
| 89 | +| Commit | Type | Description | |
| 90 | +| --------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------- | |
| 91 | +| [3d5daa45e](https://github.com/angular/angular-cli/commit/3d5daa45e3ade025c1bc0df35d2766563ccf7c03) | refactor | deprecate webpack and webpack-dev-server builders | |
| 92 | + |
| 93 | +### @angular/build |
| 94 | + |
| 95 | +| Commit | Type | Description | |
| 96 | +| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------------ | |
| 97 | +| [e9aa7967b](https://github.com/angular/angular-cli/commit/e9aa7967ba391e429ec1c04473efb4a2d38a62bf) | feat | add isolate option to unit-test builder | |
| 98 | +| [fe720cab6](https://github.com/angular/angular-cli/commit/fe720cab64bbc8bcc2db583188e32ad938e63a23) | feat | add process.env.PORT support to the dev server | |
| 99 | +| [0781f7498](https://github.com/angular/angular-cli/commit/0781f74986e773d143b9bdf5d3f0747de0df6b0a) | feat | add quiet option to suppress build noise in unit tests | |
| 100 | +| [cd2ad3c19](https://github.com/angular/angular-cli/commit/cd2ad3c1958d9adadc214045b5e59c0c8f8b4499) | feat | enable chunk optimization by default with heuristics | |
| 101 | +| [3007f46b7](https://github.com/angular/angular-cli/commit/3007f46b7e077227b17d8bb1090edd2f8ff19ae3) | feat | move istanbul-lib-instrument to optional peer dependency | |
| 102 | +| [af2c7e944](https://github.com/angular/angular-cli/commit/af2c7e9444fba81d3b1fd2d37dc4412f8305b5ed) | feat | rename `experimentalPlatform` to `platform` in application builder | |
| 103 | +| [58c7c7a9d](https://github.com/angular/angular-cli/commit/58c7c7a9d80fc6af5cf8b82a6d87f1d3cf3808c6) | feat | subresource integrity validation for dynamically loaded modules | |
| 104 | +| [73233dc5f](https://github.com/angular/angular-cli/commit/73233dc5f41b570f5ac095b255a46de6cbfb54b7) | feat | support Istanbul coverage in Vitest runner | |
| 105 | +| [414320d02](https://github.com/angular/angular-cli/commit/414320d02a090b7b36720051569cba7563bf9ac6) | feat | support runtime Zone.js detection in Vitest unit test runner | |
| 106 | +| [b85ec6798](https://github.com/angular/angular-cli/commit/b85ec6798b5c74f778a69a657729e446a2156261) | fix | allow configuring Access-Control-Allow-Origin via headers option | |
| 107 | +| [edfa782d5](https://github.com/angular/angular-cli/commit/edfa782d52fd971aebead8b96b6ca470a3f5123e) | fix | use dynamic TestComponentRenderer for Vitest | |
| 108 | + |
| 109 | +### @angular/ssr |
| 110 | + |
| 111 | +| Commit | Type | Description | |
| 112 | +| --------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------- | |
| 113 | +| [5adc92541](https://github.com/angular/angular-cli/commit/5adc92541433be23fc2246db5a199cf5c0dc9e67) | fix | enforce explicit opt-in for proxy headers | |
| 114 | +| [f85343925](https://github.com/angular/angular-cli/commit/f8534392552f4896ee9449939cdc705010331e3d) | fix | support all X-Forwarded-\* headers when trustProxyHeaders is true | |
| 115 | +| [8471ba634](https://github.com/angular/angular-cli/commit/8471ba63433d87ba3e59af622ed9cfa89b732cd9) | fix | support server-side rendering configuration options | |
| 116 | +| [50b16a65b](https://github.com/angular/angular-cli/commit/50b16a65b1be1f9c2ec11d578240a8884518d517) | refactor | deprecate CommonEngine APIs | |
| 117 | +| [27cd35561](https://github.com/angular/angular-cli/commit/27cd355619aad140dfc221c6bd161f4a981e0f3b) | refactor | remove CSR fallback for invalid hosts | |
| 118 | + |
| 119 | +### @ngtools/webpack |
| 120 | + |
| 121 | +| Commit | Type | Description | |
| 122 | +| --------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------- | |
| 123 | +| [547ca515b](https://github.com/angular/angular-cli/commit/547ca515b707c283489a3f088d86fc84807d830d) | refactor | deprecate @ngtools/webpack loader and plugin | |
| 124 | + |
| 125 | +<!-- CHANGELOG SPLIT MARKER --> |
| 126 | + |
1 | 127 | <a name="21.2.14"></a> |
2 | 128 |
|
3 | 129 | # 21.2.14 (2026-06-03) |
|
0 commit comments