Skip to content

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

Merged
jinglemansweep merged 1 commit into
mainfrom
chore/vite-8-plugin-react-6
Jul 24, 2026
Merged

chore(deps): upgrade vite to v8 and @vitejs/plugin-react to v6#346
jinglemansweep merged 1 commit into
mainfrom
chore/vite-8-plugin-react-6

Conversation

@jinglemansweep

Copy link
Copy Markdown
Contributor

Summary

Upgrade Vite from v6 to v8 and @vitejs/plugin-react from v4 to v6. These two are mutually dependent (plugin-react@6 requires vite@^8 peer, and plugin-react@4 doesn't support vite@8) and must land together.

Supersedes and closes #329 and #331.

Changes

Dependency bumps (package.json, package-lock.json)

  • vite: ^6 -> ^8.1.5 (resolved: 8.1.5)
  • @vitejs/plugin-react: ^4 -> ^6.0.4 (resolved: 6.0.4)

Vite config migration (vite.config.ts)

Vite 8 replaces Rollup with Rolldown as the bundler engine. Two breaking changes required config migration:

  1. build.rollupOptions -> build.rolldownOptions (rollupOptions is a deprecated alias)

  2. Object-form manualChunks removed -> migrated to Rolldown's codeSplitting.groups API:

    // Before (Rollup object form - removed in Vite 8)
    manualChunks: {
      vendor: ["react", "react-dom", "react-router"],
      i18n: ["i18next", "react-i18next", "i18next-browser-languagedetector"],
    }
    
    // After (Rolldown codeSplitting.groups)
    codeSplitting: {
      groups: [
        { name: "vendor", test: /[\\/]node_modules[\\/](react|react-dom|react-router)[\\/]/ },
        { name: "i18n", test: /[\\/]node_modules[\\/](i18next|react-i18next|i18next-browser-languagedetector)[\\/]/ },
      ],
    }

Why the Renovate PRs failed

Build output

Chunks produced by the new codeSplitting config:

  • vendor: 230 KB (react, react-dom, react-router)
  • i18n: 55 KB (i18next, react-i18next, i18next-browser-languagedetector)

Verification

  • npm run build — succeeds (Tailwind + Vite/Rolldown)
  • npx tsc --noEmit — clean
  • npm run test:frontend (vitest) — 339/339 passing
  • pre-commit run --all-files — all green

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.
@jinglemansweep
jinglemansweep force-pushed the chore/vite-8-plugin-react-6 branch from 307215b to 1a4b58b Compare July 24, 2026 23:10
@jinglemansweep
jinglemansweep enabled auto-merge July 24, 2026 23:12
@codecov

codecov Bot commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@jinglemansweep
jinglemansweep merged commit e6b613c into main Jul 24, 2026
5 checks passed
@jinglemansweep
jinglemansweep deleted the chore/vite-8-plugin-react-6 branch July 24, 2026 23:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant