The situation
Our dashboard needed an upgrade from Vite 4 to Vite 8. The change included replacing the Rollup bundler with Rolldown and updating TypeScript and the test tooling.
The upgrade needed to preserve application routing and compatibility with the Node versions the project supported.
What Deployment.io did
One Deployment.io Task produced a pull request covering 10 files.
- Checked each major version's migration requirements against the codebase and verified development-server routing before removing an obsolete plugin.
- Updated TypeScript from 4.9 to 5.9 to support the new React plugin's type definitions.
- Verified that the new JSX test setting was necessary: reverting it caused two test files to fail.
- Kept a development plugin version compatible with the Node version used in CI.
- Kept unrelated changes to TypeScript's import resolution out of the upgrade after finding an incompatible import.
The pull request merged on 27 August 2026.
Measurement and verification
Build time fell from 33.49 seconds to 4.29 seconds, a measured 7.8x speedup. These figures cover only the bundler's production-build step in the recorded build environment.
JavaScript on the entry page's critical path fell from 595.7 kB to 525.1 kB, a 12% reduction. The comparison includes all preloaded files on that path, accounting for the new bundler splitting the entry into several files.
Lint, type checks, the production build, and tests passed. Verification also included development-server routing checks and a completed manual browser check.