Skill Index

pachira/

vite-rolldown

community[skill]

Vite 8 Rolldown bundler and Oxc transformer migration

$/plugin install pachira

details

Rolldown Migration (Vite 8)

Vite 8 replaces esbuild+Rollup with Rolldown, a unified Rust-based bundler.

What Changed

Before (Vite 7)After (Vite 8)
esbuild (dev transform)Oxc Transformer
esbuild (dep pre-bundling)Rolldown
Rollup (production build)Rolldown
rollupOptionsrolldownOptions
esbuild optionoxc option

Performance Impact

  • 10-30x faster than Rollup for production builds
  • Matches esbuild's dev performance
  • Unified behavior between dev and build

Config Migration

rollupOptions → rolldownOptions

// Before (Vite 7)
export default defineConfig({
  build: {
    rollupOptions: {
      external: ['vue'],
      output: { globals: { vue: 'Vue' } },
    },
  },
})

// After (Vite 8)
export default defineConfig({
  build: {
    rolldownOptions: {
      external: ['vue'],
      output: { globals: { vue: 'Vue' } },
    },
  },
})

esbuild → oxc

// Before (Vite 7)
export default defineConfig({
  esbuild: {
    jsxFactory: 'h',
    jsxFragment: 'Fragment',
  },
})

// After (Vite 8)
export default defineConfig({
  oxc: {
    jsx: {
      runtime: 'classic',
      pragma: 'h',
      pragmaFrag: 'Fragment',
    },
  },
})

JSX Configuration

export default defineConfig({
  oxc: {
    jsx: {
      runtime: 'automatic',  // or 'classic'
      importSource: 'react', // for automatic runtime
    },
    jsxInject: `import React from 'react'`,  // auto-inject
  },
})

Custom Transform Targets

export default defineConfig({
  oxc: {
    include: ['**/*.ts', '**/*.tsx'],
    exclude: ['node_modules/**'],
  },
})

Plugin Compatibility

Most Vite plugins work unchanged. Rolldown supports Rollup's plugin API.

If a plugin only works during build:

{
  ...rollupPlugin(),
  enforce: 'post',
  apply: 'build',
}

New Capabilities

Rolldown unlocks features not possible before:

  • Full bundle mode (experimental)
  • Module-level persistent cache
  • More flexible chunk splitting
  • Module Federation support

Gradual Migration

For large projects, migrate via rolldown-vite first:

# Step 1: Test with rolldown-vite
pnpm add -D rolldown-vite

# Replace vite import in config
import { defineConfig } from 'rolldown-vite'

# Step 2: Once stable, upgrade to Vite 8
pnpm add -D vite@8

Overriding Vite in Frameworks

When framework depends on older Vite:

{
  "pnpm": {
    "overrides": {
      "vite": "8.0.0"
    }
  }
}
<!-- Source references: - https://vite.dev/blog/announcing-vite8-beta - https://vite.dev/blog/announcing-vite7 - https://vite.dev/config/shared-options#oxc -->

technical

github
9aia/pachira
stars
0
license
MIT
contributors
1
last commit
2026-02-03T04:38:38Z
file
.claude/skills/vite/references/rolldown-migration.md

related