Skip to content

Vite 8.0

SeungAh Hong4min read

Vite 8.0 Release: The Unified Toolchain and Migration Guide

On March 12, 2026, Vite 8.0 was officially released. The heart of this major version is the Unified Toolchain: the default bundler switches to Rolldown, and the transformation and minification that esbuild used to handle are now done by Oxc. It is regarded as the most significant architectural change since Vite 2. Weekly downloads have reached 65 million.

📋 Table of Contents

  1. Key Changes
  2. Comparison with Vite 7.0
  3. Migration Guide
  4. New Features
  5. Ecosystem Updates

Key Changes

1. The Unified Toolchain

The biggest change in Vite 8 is a toolchain aligned into one. Previously, Vite used a dual-bundler setup — esbuild during development and Rollup for production builds — but Vite 8 unifies them.

The three components:

  • Vite — the build tool
  • Rolldown — the bundler (Rust-based)
  • Oxc — the compiler (parsing, transforming, minifying)

This alignment guarantees consistent behavior across the entire pipeline of parsing, resolving, transforming, and minifying.

2. Rolldown Adopted as the Default Bundler

Rolldown, the Rust-based bundler offered experimentally in Vite 7, is now the default, replacing esbuild and Rollup.

Main effects:

  • Up to 10–30x faster builds (while maintaining plugin compatibility)
  • Eliminates bundler inconsistency between development and production
  • The most significant architectural change since Vite 2

Real-world production build improvements:

ServiceResult
Linear46s → 6s
Beehiiv64% reduction
Ramp57% reduction
Mercedes-Benz.ioUp to 38% reduction

3. Oxc-based Transformation and Minification

JavaScript transformation and minification have moved from esbuild to Oxc.

  • JS transformation: Oxc replaces esbuild (esbuild option → oxc)
  • JS minification: uses the Oxc Minifier
  • CSS minification: Lightning CSS is now the default
  • Note: Oxc does not support native decorator lowering, so use a Babel/SWC plugin when needed.

4. Node.js Support Requirements

Vite 8 requires Node.js 20.19+ or 22.12+ (unchanged from Vite 7).

5. Raised Browser Targets

The default browser target was raised to match the "Baseline Widely Available" feature set as of 2026-01-01.

BrowserVite 7.0Vite 8.0
Chrome107111
Edge107111
Firefox104114
Safari16.016.4

Comparison with Vite 7.0

Key Differences

FeatureVite 7.0Vite 8.0
Default bundleresbuild + RollupRolldown (unified)
JS transform/minifyesbuildOxc
CSS minificationesbuildLightning CSS
RolldownExperimentalDefault
Min. Node.js version20.19+ / 22.12+20.19+ / 22.12+ (same)
Build speedBaselineUp to 10–30x faster

Performance Improvements

  • Unifying the dev/production toolchain delivers consistency and speed at once
  • Especially large build-time reductions on big projects (measured at 38–64%)

Migration Guide

Step 1: Check Your Node.js Version

# Check Node.js version (20.19+ or 22.12+ required)
node --version

Step 2: Update package.json

{
  "devDependencies": {
    "vite": "^8.0.0"
  }
}

If you were using the technical preview rolldown-vite package, simply replace it with vite: ^8.0.0 as above.

Step 3: Review Browser Targets

If you set a custom target, review the raised minimum versions:

// vite.config.js
export default {
  build: {
    target: 'baseline-widely-available',
  },
};

Step 4: Migrate Bundler Options (Rollup → Rolldown)

The rollupOptions family must move to rolldownOptions (they work as deprecated warnings for now).

// vite.config.js
export default {
  build: {
    // rollupOptions: { ... },   // deprecated
    rolldownOptions: {
      // ...
    },
  },
  // worker.rollupOptions → worker.rolldownOptions
};

Key changes:

  • optimizeDeps.esbuildOptionsoptimizeDeps.rolldownOptions
  • build.rollupOptionsbuild.rolldownOptions
  • worker.rollupOptionsworker.rolldownOptions
  • build.commonjsOptions → no-op
  • Object form of output.manualChunks removed (function form deprecated)
  • build.rollupOptions.watch.chokidarbuild.rolldownOptions.watch.watcher

Step 5: Check Transformation/Minification Options

// vite.config.js
export default {
  // esbuild: { ... },  // deprecated → move to oxc
  oxc: {
    // JSX, define, etc. are converted automatically
  },
  build: {
    // To revert to esbuild minification (requires esbuild as a devDependency)
    minify: 'esbuild',
  },
};

Step 6: Verify CommonJS Interop

The default import handling rules have changed. If you need the old behavior, you can restore it temporarily:

// vite.config.js
export default {
  legacy: {
    inconsistentCjsInterop: true, // temporarily restore previous behavior
  },
};

New Features

1. Integrated Devtools

Integrated developer tools are available via the new devtools configuration option.

// vite.config.js
export default {
  devtools: {
    // ...
  },
};

2. Built-in TypeScript paths Support

Use tsconfig's paths mapping without a separate plugin via resolve.tsconfigPaths.

// vite.config.js
export default {
  resolve: {
    tsconfigPaths: true,
  },
};

3. Other Additions

  • Automatic emitDecoratorMetadata support — decorator metadata handled automatically
  • WebAssembly SSR support.wasm?init imports
  • Browser console forwarding — browser console logs forwarded to the dev server terminal

4. @vitejs/plugin-react v6

It now uses Oxc for React Refresh transforms, and Babel has been removed as a dependency, reducing the installation footprint.

Ecosystem Updates

registry.vite.dev

A searchable plugin directory that aggregates Vite, Rolldown, and Rollup plugins daily from npm data has been launched.

Install Size Note

Vite 8 is about 15 MB larger than Vite 7.

  • lightningcss standard dependency added: ~10 MB
  • Rolldown binary: ~5 MB

Future Roadmap

  • Full Bundle Mode (experimental) — targeting 3x faster dev server startup
  • Raw AST transfer for JavaScript plugins
  • Native MagicString transforms
  • Environment API stabilization

Conclusion

Vite 8.0 is fundamentally about moving to a Unified Toolchain that ties development and production together. Adopting Rolldown and Oxc delivers up to 10–30x faster builds, but it requires some configuration changes such as bundler options (rollupOptionsrolldownOptions) and transformation options (esbuildoxc).

Key checklist:

  • ✅ Confirm Node.js 20.19+ or 22.12+
  • ✅ Review the raised browser targets
  • ✅ Migrate rollupOptionsrolldownOptions
  • ✅ Check esbuildoxc options, keep minify: 'esbuild' if needed
  • ✅ Verify CommonJS interop behavior (legacy.inconsistentCjsInterop)
  • ✅ Prepare a Babel/SWC plugin if you use decorators

For the detailed migration guide, refer to the official documentation.