Moderní tvorba webových aplikací
O webu

Vite 8 – Rolldown bundler a přechod z Vite 7

Co přináší Vite 8, jak funguje nový Rust bundler Rolldown a jak migrovat projekt z Vite 7 na Vite 8.

6 minut

Vite 8 přináší zásadní změnu v architektuře – místo dosavadní kombinace esbuild (dev) + Rollup (build) používá jednotný bundler Rolldown, napsaný v Rustu. Výsledkem jsou rychlejší buildy, menší rozdíly mezi dev a production prostředím a lepší konsistence.

Co je Rolldown

Rolldown je bundler napsaný v Rustu, kompatibilní s Rollup API. Nahrazuje dvě dosavadní závislosti Vite:

  • esbuild – používaný ve Vite 2–7 pro transformaci a optimalisaci závislostí v dev režimu
  • Rollup – používaný pro production build

Díky tomu, že Rolldown zvládá obě role, odpadají problémy s nekonsistencí mezi dev a build výstupem. Zároveň je díky Rustu výrazně rychlejší než JavaScript-based Rollup.

Co je nového ve Vite 8

FunkceVite 7Vite 8
Bundler (dev)esbuildRolldown
Bundler (build)RollupRolldown
Konsistence dev/buildObčasné rozdílyStejný bundler
Rychlost builduZáklad~30–40 % rychlejší
Node.js≥ 18≥ 18
Plugin APIRollup-kompatibilníRollup-kompatibilní

Další změny

  • optimizeDeps.esbuildOptions je deprecated – nahrazuje ho optimizeDeps.rolldownOptions
  • build.rollupOptions je deprecated – nahrazuje ho build.rolldownOptions
  • inlineDynamicImports je deprecated – nově se používá codeSplitting: false
  • CSS minifikace defaultně používá Lightning CSS místo esbuildu
  • Rolldown je přísnější ohledně chybějících exportů – místo varování může vyhodit chybu

Migrace z Vite 7 na Vite 8

1. Aktualisace závislosti

npm install -D vite@beta
# nebo
pnpm add -D vite@beta

Jakmile bude Vite 8 stable, stačí vite@latest.

2. Kontrola pluginů

Většina Rollup pluginů funguje i s Rolldown. Zkontrolujte ale, zda vaše pluginy nepodporují Vite 8 explicitně – mohou se objevit peer dependency varování. Pokud build proběhne úspěšně, je to obvykle v pořádku.

3. Oprava deprecated možností

Pokud ve vite.config používáte:

// Vite 7 (deprecated ve Vite 8)
export default {
  optimizeDeps: {
    esbuildOptions: { /* ... */ }
  },
  build: {
    rollupOptions: {
      output: {
        inlineDynamicImports: true
      }
    }
  }
}

Přepište na:

// Vite 8
export default {
  optimizeDeps: {
    rolldownOptions: { /* ... */ }
  },
  build: {
    rolldownOptions: {
      output: {
        codeSplitting: false // místo inlineDynamicImports
      }
    }
  }
}

4. Chybějící exporty

Rolldown je přísnější než Rollup. Pokud váš kód importuje proměnnou, která reálně neexistuje (např. env proměnné, které nemáte v .env), Vite 8 vyhodí chybu MISSING_EXPORT místo tichého ignorování.

Řešení: zajistěte, aby všechny importované env proměnné měly alespoň placeholder hodnotu v .env souboru.

Jaký je reálný rozdíl v rychlosti

Na reálném SvelteKit projektu s ~1100 stránkami (prerendered) vypadá porovnání takto:

MetrikaVite 7Vite 8
Celkový build~25 s~15 s
vite build samotný~12 s~8 s
Zrychlení~36 %

Největší úspora je v bundlování – Rolldown zpracovává moduly rychleji než Rollup. Fáze jako prerendering nebo post-build skripty zůstávají stejné.

Na co si dát pozor

  • Beta stav – Vite 8 je zatím v beta versi, mohou se objevit breaking changes
  • Peer dependency varování – pluginy jako @sveltejs/vite-plugin-svelte, @tailwindcss/vite nebo vite-plugin-kit-routes zatím nemusí deklarovat podporu pro Vite 8
  • Přísnější bundler – Rolldown netoleruje některé vzory, které Rollup tiše přeskočil (chybějící exporty, neplatné importy)
  • Nové deprecationesbuildOptionsinlineDynamicImports budou v budoucnu odstraněny

Je to konec esbuildu?

Ne úplně – ale jeho role ve Vite skončila. esbuild byl klíčový pro rychlost Vite v dev režimu od verse 2. Transformoval TypeScript, JSX a optimalisoval závislosti mnohem rychleji než jakýkoli JavaScript-based nástroj. Bez něj by Vite nikdy nebyl tak rychlý.

Rolldown ale dělá totéž a navíc zvládá i production build, takže Vite už esbuild nepotřebuje. Konfigurace optimizeDeps.esbuildOptions je ve Vite 8 deprecated a v budoucí versi bude odstraněna.

esbuild jako projekt ale nezaniká. Stále ho používají jiné nástroje (např. tsup pro bundlování knihoven nebo tsx pro spouštění TypeScriptu) a jeho API zůstává stabilní. Jde spíš o to, že Vite přerostl architekturu „esbuild pro dev, Rollup pro build” a Rolldown ji nahrazuje čistším řešením.

Doporučení

Pro produkční projekty doporučuji vytvořit testovací branch, spustit build a ověřit, že vše funguje. Pokud build projde bez chyb (varování jsou OK), je přechod na Vite 8 bezpečný a přináší měřitelné zrychlení.

# Testovací branch
git checkout -b try/vite-8
pnpm add -D vite@beta
pnpm build

Pokud build selže na MISSING_EXPORT, doplňte chybějící env proměnné. Pokud selže na nekompatibilním pluginu, počkejte na aktualisaci pluginu nebo stable release Vite 8.

Co si myslíte o tomto článku?

Diskuse

Související články

Fresh: Deno framework s islands architekturou

Porovnání Fresh frameworku s React/Next.js a Svelte/SvelteKit - build proces, runtime, reaktivita a šablony.

15 minut

Novinky e-mailem

Když budu mít něco opravdu zajímavého, můžu vám to poslat e-mailem

Přidej se k 500+ čtenářům
Jen kvalitní obsah
Žádný spam

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků · Témata · Zkratky
2013–2026