The unconditional `"vite": ">=6.4.2 <7"` override added in #161 to
keep VitePress 1.x off rolldown-vite (vite 7+) had the side effect
of downgrading **every** vite consumer in the workspace to vite
6.4.2 — including `@angular/build@21.2.11`, whose internal
`angular-memory-plugin.js > loadViteClientCode` monkey-patches the
Vite client error-overlay code. The patch targets vite 8.x's
internal layout; against vite 6 it throws:
[vite] Internal server error: Failed to update Vite client error
overlay text.
at loadViteClientCode (angular-memory-plugin.js:140:31)
…on the very first request to `pnpm nx serve portal-shell`. The
shell renders a blank screen until the workspace's vite is back to
8.x.
Fix: scope the override to vitepress's transitive resolution only,
using pnpm's `parent>child` selector syntax. Diff is one line:
- "vite": ">=6.4.2 <7",
+ "vitepress>vite": ">=6.4.2 <7",
Post-fix resolutions (verified against pnpm-lock):
- VitePress → vite@6.4.2 (Rollup-based, VitePress 1.x compatible)
- @angular/build, @nx/vite, Vitest, etc. → vite@8.0.13 (restored)
- @vitejs/plugin-basic-ssl (analog dep) → vite@7.3.2 (its own
peer range; not the patched-7+ rolldown branch in a way that
affects us — it's used for HTTPS-cert generation only, not
dev-server hosting).
Verification:
* `pnpm audit --audit-level=moderate` → no known vulnerabilities.
* `pnpm docs:build` → 9.5 s, Mermaid still renders in ADR-0009.
* `pnpm nx run-many -t lint test build` on the 6 main projects
→ all green.
* `pnpm nx serve portal-shell` → boots cleanly, HTTP 200 on
`/`, no `loadViteClientCode` error in the dev log.