Skip to content

v1.6.0 — React 19, Vite 8, TypeScript 6, ESLint 10

Latest

Choose a tag to compare

@willwillis willwillis released this 01 May 06:01

Highlights

Major frontend framework upgrade — React 18 → 19, Vite 7 → 8, TypeScript 5 → 6, ESLint 8 → 10 — plus post-upgrade cleanup to remove dead dependencies and wire up previously orphaned lint rules.

PRs: #10, #11


Added

  • React 19 with idiomatic createRoot / StrictMode named imports
  • Vite 8 build toolchain
  • TypeScript 6 with src/vite-env.d.ts for CSS side-effect imports
  • ESLint 10 with flat config
  • @typescript-eslint v8 (fixes 6 high CVEs from minimatch ReDoS in v6)
  • eslint-plugin-react-hooks v7 — enforcing rules-of-hooks (error) and exhaustive-deps (warn)
  • eslint-plugin-react-refresh v0.5 — enforcing only-export-components (warn)
  • @testing-library/react v16 and jsdom v29
  • Re-enabled tsc --noEmit and npm audit checks in CI

Changed

  • React 18 → 19, react-dom 18 → 19
  • Vite 7 → 8, @vitejs/plugin-react 4 → 6
  • TypeScript 5 → 6
  • ESLint 8 → 10, @eslint/js 9 → 10
  • @testing-library/react 14 → 16, jsdom 23 → 29
  • main.tsx modernized to use named imports
  • import.meta.env no longer needs as any cast

Removed

  • react-router-dom — was never imported in source; phantom dependency removed
  • autoprefixer — redundant with Tailwind CSS v4
  • eslint-plugin-react — incompatible with ESLint 10 and unused
  • Duplicate root-level vite-env.d.ts — consolidated into src/

Fixed

  • ESLint plugins installed but not configured — now enforced
  • CI was skipping tsc --noEmit and npm audit — both re-enabled (pass clean)
  • 6 high-severity CVEs resolved via @typescript-eslint v6 → v8

Full Changelog: v1.5.0...v1.6.0