Aligns CI with local dev environment (Node 24 / npm 11).
The lockfile generated by npm 11 causes npm ci to fail on Node 22
due to missing optional sub-dependency entries.
- Bump CI Node from 20 to 22 across all jobs. sass-loader@17 requires
Node >= 22.11, so Node 20 was unsupported (EBADENGINE).
- Regenerate package-lock.json from scratch to fix npm ci failing with
"Missing: @emnapi/runtime from lock file" — an npm optional-deps issue with
the oxc/wasm bindings pulled by typescript-eslint's resolver.