chore(deps): upgrade vite to v8 and @vitejs/plugin-react to v6

Vite 8 replaces Rollup with Rolldown as the bundler engine. This
requires migrating build.rollupOptions to build.rolldownOptions and
the removed object-form manualChunks to the new codeSplitting.groups
API.

Migrate vite.config.ts:
- rollupOptions -> rolldownOptions
- manualChunks object -> codeSplitting.groups with RegExp test patterns
  (vendor: react/react-dom/react-router, i18n: i18next packages)

@vitejs/plugin-react@6 requires vite@^8 as peer dependency, so both
upgrades must land together.

Verified: npm run build succeeds (chunks: vendor 230KB, i18n 55KB),
tsc --noEmit clean, 339/339 vitest tests passing.
This commit is contained in:
Louis King
2026-07-25 00:05:37 +01:00
parent 9ce1ef9c78
commit 1a4b58b473
3 changed files with 292 additions and 1304 deletions
+278 -1298
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -21,10 +21,10 @@
"@types/node": "^24.0.0",
"@types/react": "^19",
"@types/react-dom": "^19",
"@vitejs/plugin-react": "^4",
"@vitejs/plugin-react": "^6.0.4",
"jsdom": "^29.1.1",
"typescript": "^7.0.2",
"vite": "^6",
"vite": "^8.1.5",
"vitest": "^4.1.10"
},
"dependencies": {
+12 -4
View File
@@ -20,12 +20,20 @@ export default defineConfig({
outDir: DIST,
emptyOutDir: true,
manifest: true,
rollupOptions: {
rolldownOptions: {
input: resolve(SPA_REACT, "index.html"),
output: {
manualChunks: {
vendor: ["react", "react-dom", "react-router"],
i18n: ["i18next", "react-i18next", "i18next-browser-languagedetector"],
codeSplitting: {
groups: [
{
name: "vendor",
test: /[\\/]node_modules[\\/](react|react-dom|react-router)[\\/]/,
},
{
name: "i18n",
test: /[\\/]node_modules[\\/](i18next|react-i18next|i18next-browser-languagedetector)[\\/]/,
},
],
},
},
},