# Vite 8 and Rolldown: What Changed and How to Upgrade

Vite 8 replaces esbuild and Rollup with one Rust bundler, Rolldown. Here is what changed, the Node.js requirement, the new options, what Vite 8.1 added, and a safe way to upgrade.

By Waseem Anjum · Published 2026-11-13 · https://fabwaseem.com/blog/vite-8-rolldown-upgrade-guide

> **TL;DR:** Vite 8 (March 12, 2026) replaces esbuild and Rollup with one Rust-based bundler, Rolldown, and keeps plugin compatibility. It needs Node.js 20.19+ or 22.12+, adds about 15 MB to the install, and a compatibility layer converts most existing esbuild and rollupOptions config. Vite 8.1 (June 23, 2026) adds experimental bundled dev mode.

If your project builds with Vite, version 8 is the biggest change to the tool in years: it drops esbuild and Rollup and uses one Rust-based bundler called Rolldown. It reached stable on March 12, 2026, and Vite 8.1 followed on June 23, 2026.

Speed figures below are the ones the Vite team publishes in its announcements.

Sources: [Announcing Vite 8](https://vite.dev/blog/announcing-vite8) and [Announcing Vite 8.1](https://vite.dev/blog/announcing-vite8-1).

## What changed in Vite 8?

Before, Vite used esbuild in development and Rollup for production builds. Vite 8 replaces both with Rolldown, a single Rust-based bundler, and uses Oxc for parsing, transforming and minifying. Rolldown is the successor to the earlier `rolldown-vite` preview package. The team says plugin compatibility is kept.

| Area | Vite 8 |
| --- | --- |
| Bundler | Rolldown (replaces esbuild and Rollup) |
| Compiler toolchain | Oxc |
| Node.js | 20.19+ or 22.12+ |
| Lightning CSS | Now a normal dependency, not optional |
| Install size | About 15 MB larger than Vite 7 |

The extra 15 MB is roughly 10 MB from lightningcss and 5 MB from the larger Rolldown binary. Lightning CSS moved from an optional peer dependency to a regular one to give better CSS minification out of the box.

## How fast is it?

The announcement says Rolldown is up to 10-30x faster than Rollup in its benchmarks. It also quotes real projects:

![Bar chart of build time reductions after Rolldown: Beehiiv 64 percent, Ramp 57 percent, Mercedes-Benz.io up to 38 percent](https://res.cloudinary.com/wasicloudinary/image/upload/v1794543789/fabwaseem/projects/k4nmeqmsdfy1ghu3cqsg.jpg)

Linear is quoted as going from 46s to 6s for production builds. These are reported numbers from the Vite team and its users. Test your own project before promising anyone a speedup.

## Which Node.js version do I need?

Node.js 20.19+ or 22.12+, the same as Vite 7. Those versions support `require(esm)` without a flag, which is what lets Vite ship as ESM only. If you are choosing a runtime line anyway, see [Node 24 vs Node 26](https://fabwaseem.com/blog/node-24-vs-node-26).

## Will my config break?

Often it will not. The announcement says a compatibility layer converts existing `esbuild` and `rollupOptions` configuration into Rolldown and Oxc equivalents, so many projects need no config changes. The post itself does not list breaking changes, so read the migration guide it links before you upgrade.

## What new options does Vite 8 add?

- `devtools` to enable Vite Devtools.
- `resolve.tsconfigPaths` for TypeScript path aliases. It is off by default and has a small performance cost.
- Built-in `emitDecoratorMetadata` support, so you no longer need an external plugin.
- `.wasm?init` imports now work in SSR.
- `server.forwardConsole` sends browser console logs and errors to the terminal, and turns on automatically when a coding agent is detected.

`@vitejs/plugin-react` v6 uses Oxc for the React Refresh transform and no longer depends on Babel. React Compiler users get a `reactCompilerPreset` helper that works with `@rolldown/plugin-babel`. Version 5 of the plugin still works with Vite 8. If you use the compiler, [React Compiler in Next.js](https://fabwaseem.com/blog/react-compiler-nextjs) covers the idea from the Next side.

## What did Vite 8.1 add?

Released June 23, 2026. The post reports 41.6 million weekly downloads for Vite 8.

| Feature | Detail |
| --- | --- |
| Bundled dev mode (experimental) | `--experimental-bundle` or `experimental.bundledDev: true` |
| Chunk import map (experimental) | `build.chunkImportMap`, does not work with `experimental.renderBuiltUrl` |
| Wasm ESM | `import { add } from './add.wasm'` |
| Lightning CSS | `css.transformer: 'lightningcss'` |
| Glob matching | `caseSensitive: false` for `import.meta.glob` |
| HTML assets | `html.additionalAssetSources` |

For bundled dev mode, the post reports about 15x faster startup and 10x faster full page reloads in a test app with 10,000 React components. It focuses on the browser side and basic plugins, so third-party plugins may not work. The team is considering making Lightning CSS the default in the next major release.

## How do I upgrade safely?

![Four step upgrade path: Vite 7, rolldown-vite, Vite 8, check the build](https://res.cloudinary.com/wasicloudinary/image/upload/v1794543792/fabwaseem/projects/j8fdkjkg5uvsxvijhucm.jpg)

The official advice for large or complex projects is to switch from `vite` to the `rolldown-vite` package on Vite 7 first. That isolates any Rolldown-specific problems from the version bump. Then upgrade to Vite 8.

```bash
npm install vite@latest
```

Then run a production build and your tests, and compare the output size. If you also lint with a Rust tool, [Oxlint vs ESLint](https://fabwaseem.com/blog/oxlint-vs-eslint) is a good companion read.

## What should I check before upgrading?

Read the official [Vite migration guide](https://vite.dev/guide/migration) for the full list of renamed and removed options before you upgrade. The performance numbers come from the Vite team's announcement, so measure your own build time before and after the switch. Vite 8.1 features marked experimental can still change.

## Key takeaways

- Vite 8 uses Rolldown as one bundler instead of esbuild plus Rollup.
- You need Node.js 20.19+ or 22.12+.
- Expect about 15 MB more install size.
- Many configs convert automatically; read the migration guide anyway.
- Try `rolldown-vite` on Vite 7 first for big projects.
- Vite 8.1 bundled dev mode is experimental.

## Questions

### What is new in Vite 8?

Vite 8 replaces esbuild (dev) and Rollup (production) with Rolldown, a single Rust-based bundler, and uses Oxc for parsing, transforming and minifying. The Vite team calls it the most significant architectural change since Vite 2.

### Which Node.js versions does Vite 8 need?

Node.js 20.19+ or 22.12+, the same as Vite 7. These versions support require(esm) without a flag, which lets Vite ship as ESM only.

### Will my vite.config break?

Often not. The announcement says a compatibility layer converts existing esbuild and rollupOptions config to Rolldown and Oxc equivalents. Check the migration guide for the full list of breaking changes.

### How much faster is Vite 8?

The Vite team says up to 10-30x faster builds than Rollup in its benchmarks, and quotes user reports such as Linear going from 46s to 6s. Your result will depend on your project.

### What did Vite 8.1 add?

Released June 23, 2026, it adds experimental bundled dev mode, an experimental chunk import map, Wasm ESM import support, a caseSensitive option for import.meta.glob and html.additionalAssetSources.
