Angular 22.2.1 / CLI 22.2.0 (Sept 23/30) and Vitest 5.0.3 are out. We're held on Angular 22.1.x because Nx 23.2.1 (latest) still declares angularVersion = '~22.1.0'; 22.2 support is in draftnrwl/nx#37234 (expected Nx 23.3). Vitest 5 needs @angular/build 22.2 (22.1.x peers vitest ^4 only), and the jsdom pin (30.0.1, a4b29f9dc) can only lift with Vitest 5.0.3 — the jsdom 30.1 _buffer Blob/File breakage was a Vitest bug (vitest-dev/vitest#11336, fixed in 5.0.3 by #11379; v4 backport #11384 still open).
@angular/build 22.2 no longer writes stats.json — it writes browser-stats.json + browser-initial-stats.json (angular-cli 175273931). Fix scripts/bundle-cjs-vs-total-report.mjs:10; the stats script (package.json ~L16) already points at a wrong path and needs webpack-bundle-analyzer (not installed); build:analyze calls a non-existent analyze:bundles.
With the service worker on, preloadInitial now defaults to false → no <link rel="modulepreload"> in index.html (angular-cli d396324b4). Accept (avoids double fetch with ngsw) or set index.preloadInitial: true; decide explicitly in projects/spikersoft/project.json.
Unit-test builder now runs setupFiles hooks per spec under coverage — do a full coverage run (projects/spikersoft/vitest.config.ts has two setupFiles + v8 coverage).
Use ng-packagr 22.2.4 (reverts 22.2.x parallel entry-point scheduling; ng-packagr switched rollup → rolldown in 22.2.0) and run nx run-many -t build across the ~114 library targets (ng-packagr-lite subclasses ng-packagr internals).
Bump @angular/* 22.2.1, CLI/build/schematics 22.2.x, cdk/material/aria/google-maps 22.2.1 — via nx migrate if Nx 23.3 lands, else directly.
Vitest 5 (+ coverage-v8)
clearMocks now defaults to true — audit specs that set up mocks in beforeAll/describe scope and assert call counts (13 files use beforeAll); or set clearMocks: false first and remove later.
json/junit reporters + attachments move under .vitest/ — add to .gitignore, eslint ignores, sonar.exclusions.
Confirm VITEST_MAX_WORKERS is still honoured (CI: main.yml ~L534, sonarqube-scan.yml ~L90/117).
Update the "Standing holds" / graveyard comments in pnpm-workspace.yaml and the "Vitest 4 hoisted…" comment in projects/spikersoft/vitest.config.ts; 22.2 deprecates unit-test splitting (we don't set it, but the comment recommends it).
jsdom
Unpin to ^30.1; 121 spec files use Blob/File/createObjectURL — full suite.
Filed from the 2026-10-02 spikersoft-angular pnpm outdated changelog review.
## Why
Angular **22.2.1** / CLI **22.2.0** (Sept 23/30) and **Vitest 5.0.3** are out. We're held on Angular 22.1.x because Nx 23.2.1 (latest) still declares `angularVersion = '~22.1.0'`; 22.2 support is in **draft** nrwl/nx#37234 (expected Nx 23.3). Vitest 5 needs `@angular/build` 22.2 (22.1.x peers vitest `^4` only), and the jsdom pin (30.0.1, a4b29f9dc) can only lift with Vitest 5.0.3 — the jsdom 30.1 `_buffer` Blob/File breakage was a Vitest bug (vitest-dev/vitest#11336, fixed in 5.0.3 by #11379; v4 backport #11384 still open).
Changelogs reviewed: angular CHANGELOG 22.2.0-22.2.1, angular-cli 22.2.0, components 22.2.0-22.2.1, ng-packagr 22.2.x, vitest 5 migration guide. No source-level breaking changes in Angular 22.2.
## What changes for us (do these in the upgrade PR)
**Angular 22.2 / CLI**
- [ ] `@angular/build` 22.2 no longer writes `stats.json` — it writes `browser-stats.json` + `browser-initial-stats.json` (angular-cli 175273931). Fix `scripts/bundle-cjs-vs-total-report.mjs:10`; the `stats` script (`package.json` ~L16) already points at a wrong path and needs `webpack-bundle-analyzer` (not installed); `build:analyze` calls a non-existent `analyze:bundles`.
- [ ] With the service worker on, `preloadInitial` now defaults to **false** → no `<link rel="modulepreload">` in `index.html` (angular-cli d396324b4). Accept (avoids double fetch with ngsw) or set `index.preloadInitial: true`; decide explicitly in `projects/spikersoft/project.json`.
- [ ] Unit-test builder now runs setupFiles hooks per spec under coverage — do a full coverage run (`projects/spikersoft/vitest.config.ts` has two setupFiles + v8 coverage).
- [ ] Use **ng-packagr 22.2.4** (reverts 22.2.x parallel entry-point scheduling; ng-packagr switched rollup → rolldown in 22.2.0) and run `nx run-many -t build` across the ~114 library targets (`ng-packagr-lite` subclasses ng-packagr internals).
- [ ] Bump `@angular/*` 22.2.1, CLI/build/schematics 22.2.x, cdk/material/aria/google-maps 22.2.1 — via `nx migrate` if Nx 23.3 lands, else directly.
**Vitest 5 (+ coverage-v8)**
- [ ] `clearMocks` now defaults to **true** — audit specs that set up mocks in `beforeAll`/describe scope and assert call counts (13 files use `beforeAll`); or set `clearMocks: false` first and remove later.
- [ ] json/junit reporters + attachments move under `.vitest/` — add to `.gitignore`, eslint ignores, `sonar.exclusions`.
- [ ] Confirm `VITEST_MAX_WORKERS` is still honoured (CI: `main.yml` ~L534, `sonarqube-scan.yml` ~L90/117).
- [ ] Coverage include/exclude matching changed — compare lcov file counts before/after (Sonar job expects ≥60 lcov files).
- [ ] Update the "Standing holds" / graveyard comments in `pnpm-workspace.yaml` and the "Vitest 4 hoisted…" comment in `projects/spikersoft/vitest.config.ts`; 22.2 deprecates unit-test `splitting` (we don't set it, but the comment recommends it).
**jsdom**
- [ ] Unpin to `^30.1`; 121 spec files use Blob/File/createObjectURL — full suite.
Size: **M-L**.
**Links:** Unblocks #1166, #1167, #1169, #1174. Pins kept until then: jsdom 30.0.1, vitest 4.
---
_Filed from the 2026-10-02 spikersoft-angular `pnpm outdated` changelog review._
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why
Angular 22.2.1 / CLI 22.2.0 (Sept 23/30) and Vitest 5.0.3 are out. We're held on Angular 22.1.x because Nx 23.2.1 (latest) still declares
angularVersion = '~22.1.0'; 22.2 support is in draft nrwl/nx#37234 (expected Nx 23.3). Vitest 5 needs@angular/build22.2 (22.1.x peers vitest^4only), and the jsdom pin (30.0.1, a4b29f9dc) can only lift with Vitest 5.0.3 — the jsdom 30.1_bufferBlob/File breakage was a Vitest bug (vitest-dev/vitest#11336, fixed in 5.0.3 by #11379; v4 backport #11384 still open).Changelogs reviewed: angular CHANGELOG 22.2.0-22.2.1, angular-cli 22.2.0, components 22.2.0-22.2.1, ng-packagr 22.2.x, vitest 5 migration guide. No source-level breaking changes in Angular 22.2.
What changes for us (do these in the upgrade PR)
Angular 22.2 / CLI
@angular/build22.2 no longer writesstats.json— it writesbrowser-stats.json+browser-initial-stats.json(angular-cli 175273931). Fixscripts/bundle-cjs-vs-total-report.mjs:10; thestatsscript (package.json~L16) already points at a wrong path and needswebpack-bundle-analyzer(not installed);build:analyzecalls a non-existentanalyze:bundles.preloadInitialnow defaults to false → no<link rel="modulepreload">inindex.html(angular-cli d396324b4). Accept (avoids double fetch with ngsw) or setindex.preloadInitial: true; decide explicitly inprojects/spikersoft/project.json.projects/spikersoft/vitest.config.tshas two setupFiles + v8 coverage).nx run-many -t buildacross the ~114 library targets (ng-packagr-litesubclasses ng-packagr internals).@angular/*22.2.1, CLI/build/schematics 22.2.x, cdk/material/aria/google-maps 22.2.1 — vianx migrateif Nx 23.3 lands, else directly.Vitest 5 (+ coverage-v8)
clearMocksnow defaults to true — audit specs that set up mocks inbeforeAll/describe scope and assert call counts (13 files usebeforeAll); or setclearMocks: falsefirst and remove later..vitest/— add to.gitignore, eslint ignores,sonar.exclusions.VITEST_MAX_WORKERSis still honoured (CI:main.yml~L534,sonarqube-scan.yml~L90/117).pnpm-workspace.yamland the "Vitest 4 hoisted…" comment inprojects/spikersoft/vitest.config.ts; 22.2 deprecates unit-testsplitting(we don't set it, but the comment recommends it).jsdom
^30.1; 121 spec files use Blob/File/createObjectURL — full suite.Size: M-L.
Links: Unblocks #1166, #1167, #1169, #1174. Pins kept until then: jsdom 30.0.1, vitest 4.
Filed from the 2026-10-02 spikersoft-angular
pnpm outdatedchangelog review.