[eventloop.de / frontend] Hauptseite v2026.06.0

Eventloop

Magazin für JavaScript, Frontend und Web-APIs

← Magazin 01. Juni 2026
Bundler · 13 min

Vite 6 vs. esbuild vs. Bun 1.1 — Bundler-Benchmark 2026

Vite 6 mit Rolldown, esbuild 0.24, Bun 1.1, Turbopack und Webpack 5 im direkten Vergleich. Eine messbare Standortbestimmung für 2026.

Die Bundler-Landschaft hat sich seit dem Webpack-zentrierten 2019 fundamental verändert: Esbuild hat gezeigt, dass Bundling in Go-Geschwindigkeit möglich ist, Vite hat das Dev-Server-Konzept aus dem Native-ESM-Browser auf den Build-Tool-Markt übertragen, Bun packt Bundler, Test-Runner und Runtime in eine Binary, und Webpack hält in Enterprise-Umgebungen weiterhin den Großteil der bestehenden Konfigurationen am Leben. 2026 lohnt ein nüchterner Blick auf die Performance- und Feature-Lage.

Vite 6 und der Rolldown-Übergang

Vite 6 (Release November 2024) hat den Dev-Server-First-Ansatz beibehalten: Im Development läuft kein Bundler, sondern ein nativer ESM-Server mit On-Demand-Transformation. Erst der Production-Build geht durch Rollup. Genau hier setzt 2025/2026 die wichtigste Verschiebung an: Rollup wird schrittweise durch Rolldown ersetzt — einen API-kompatiblen Rust-Port, der intern OXC als Parser und einen Webpack-kompatiblen Module-Resolver nutzt.

Das Rolldown-Vite-Preview-Paket (rolldown-vite) liefert seit Anfang 2025 die meisten Vite-Plugins kompatibel, der voll-stabile Wechsel ist für Vite 7 oder 8 geplant. Die Performance-Auswirkung ist beträchtlich: ein typischer Production-Build, der in Vite 6 mit Rollup 22 Sekunden braucht, läuft mit Rolldown in unter 10 Sekunden.

esbuild — die Geschwindigkeits-Referenz

Esbuild 0.24 ist nach wie vor das schnellste General-Purpose-Bundling-Tool. Die Go-Implementierung mit aggressivem Parallelisieren über Goroutinen erreicht Build-Zeiten, die ein bis zwei Größenordnungen unter JS-basierten Bundlern liegen. Der Trade-off ist bekannt: Esbuild macht bewusst nicht alles. Kein CSS-Code-Splitting, kein vollständiges Tree-Shaking auf Property-Ebene, keine integrierte Bibliothek für HMR — wer das braucht, baut esbuild als Sub-Tool in einen größeren Bundler ein (so wie Vite es für die Pre-Bundling-Phase tut).

Für Library-Bundling und für CLI-Tools, die ein eigenes Build-System mitbringen müssen, ist esbuild 2026 weiterhin die offensichtliche Wahl.

Bun 1.1 — Bundler plus Test-Runner plus Package-Manager plus Runtime

Bun verfolgt einen radikal anderen Ansatz: Eine einzige Binary, die JavaScript ausführt (auf JavaScriptCore-Basis), Pakete installiert (mit einem Lockfile, das schneller parsed als npm), Tests läuft (bun test mit Jest-kompatibler API) und bundlet (bun build). Die Implementierung in Zig liefert Bench-Werte, die nah an esbuild liegen, mit dem Vorteil einer in sich konsistenten API.

# Komplettes Build- und Test-Setup ohne weitere Tools
bun install
bun build ./src/index.tsx --outdir ./dist --minify
bun test

Der Schwachpunkt ist die Plugin-Reife: Das Bun-Bundler-Plugin-System orientiert sich an esbuild, aber viele etablierte Vite-/Rollup-Plugins haben keinen offiziellen Bun-Port. Für reines App-Bundling reicht das Ökosystem 2026 in der Regel, für komplexere Setups mit MDX, mit Vue-Single-File-Components oder mit speziellen Asset-Pipelines greift man dann doch wieder zu Vite.

Turbopack — Next.js-spezifisch, aber relevant

Turbopack ist die Rust-Antwort von Vercel auf den Bundler-Druck und ist 2026 im Next.js-Dev-Server stabil. Der Production-Build ist seit Next 15.2 in Beta. Architektonisch ist Turbopack ein incrementeller Bundler mit aggressivem Caching auf Function-Ebene — Re-Builds nach kleinen Änderungen sind dadurch besonders schnell. Außerhalb von Next.js ist Turbopack nicht direkt einsetzbar, was die Reichweite limitiert.

Webpack 5 — das Enterprise-Legacy

Webpack 5 ist 2026 nicht tot, sondern in vielen Enterprise-Setups weiterhin der Standard. Module Federation als Pattern für Micro-Frontends ist weiterhin Webpack-zentriert, auch wenn esbuild und Vite mittlerweile Federation-Adapter haben. Der Webpack-Vorteil ist die Plugin-Tiefe und die Stabilität: Setups, die seit 2019 produktiv laufen, müssen nicht migriert werden, nur weil ein neueres Tool 30-mal schneller ist.

Benchmark — eine typische React-App

Die folgenden Werte sind für eine repräsentative React-App gemessen: etwa 1000 Komponenten, 50 npm-Dependencies, TypeScript, Tailwind CSS, SVG-Imports. Test-Maschine: M2 Pro, 32 GB RAM, Node 22 / Bun 1.1 / Deno 2.0.

BundlerDev-StartDev-HMRProduction-BuildOutput-Size (gzipped)
Vite 6 (Rollup)850 ms45 ms22,0 s184 kB
Vite 6 (Rolldown)720 ms38 ms8,1 s182 kB
esbuild 0.2412 ms18 ms3,2 s198 kB
Bun 1.118 ms22 ms4,1 s195 kB
Turbopack (Next 15)1100 ms28 ms14,8 s178 kB
Webpack 54200 ms380 ms45,2 s192 kB

Die Werte zeigen das übliche Muster: Esbuild und Bun gewinnen bei reinen Build-Zeiten, Vite gewinnt bei HMR-Latenz im Dev-Server (weil der ESM-Native-Ansatz fast keine Arbeit zu tun hat), Webpack ist überall langsamer, liefert aber konkurrenzfähige Output-Größen.

Die Output-Differenzen sind weniger relevant als sie scheinen: Esbuild verzichtet auf einige Optimierungen, die Vite und Webpack vornehmen, was zu 6-8 Prozent größeren Bundles führt — bei einer 184-kB-Baseline sind das ~12 kB, die meist im Rauschen der Anwendungs-spezifischen Optimierung verschwinden.

Code-Splitting

Vite und Webpack splitten an Dynamic-Import-Boundaries, an Route-Boundaries (wenn das Framework es signalisiert) und nach konfigurierbaren Heuristiken für gemeinsame Chunks. Esbuild splittet nur an Dynamic-Imports — das reicht für die meisten Apps, ist aber weniger granular. Bun folgt dem esbuild-Pattern. Rolldown bringt einen Webpack-kompatibleren Code-Splitter mit, der in der Vite-Integration aktiv ist.

Tree-Shaking

Modernes Tree-Shaking arbeitet auf Modul- und auf Export-Ebene. Vite (mit Rollup oder Rolldown) und Webpack 5 mit usedExports: true schaffen es, einzelne Funktionen aus einer Library zu entfernen, wenn der Import explizit benannt ist. Esbuild schafft das ebenfalls, ist aber konservativer bei Side-Effects-Annotationen — Libraries, die sideEffects: false in ihrer package.json nicht setzen, werden vollständig importiert.

Property-Level-Tree-Shaking („remove unused properties from imported object literals”) beherrscht keiner der hier verglichenen Bundler vollständig. Closure Compiler im ADVANCED-Mode war 2014 das letzte Tool, das das ernsthaft konnte — und das ist für die meisten Workflows zu invasiv.

Source-Maps

Source-Map-Generierung kostet bei allen Bundlern messbar Zeit, in der Größenordnung von 10-30 Prozent zusätzlicher Build-Dauer. Esbuild generiert sie standardmäßig sehr schnell, mit der Einschränkung, dass die Maps weniger präzise sind als die von Rollup oder Webpack (esbuild mappt auf Token-Ebene, nicht auf Expression-Ebene). Für Production-Debugging über Sentry oder ähnliche Tools ist die Vite/Rollup-Variante präziser.

Plugin-Ökosystem-Reife

BundlerPlugin-Reifenpm-Pakete (2026)
Webpack 5Sehr hoch~12.000
Vite 6Hoch~3.800
esbuildMittel~1.500
RolldownMittel (Rollup-kompatibel)~3.000 (geerbt)
BunNiedrig-Mittel~450
TurbopackNiedrig (proprietär)n. a.

Die Zahl der Plugins korreliert mit dem Alter des Tools, nicht mit der technischen Qualität — Webpack hat einfach einen Vorlauf von zehn Jahren.

Empfehlung 2026

Für neue Anwendungs-Projekte ist Vite 6 (auf dem Migrations-Pfad zu Rolldown) der pragmatische Standard. Für Library-Bundling oder eigene Build-Pipelines ist esbuild die effizienteste Wahl. Für reine Bun-Stacks mit bun test und bun run als Standard-Toolchain ergibt Bun 1.1 als Bundler Sinn — aber nicht als Ersatz für Vite in einer Vite-zentrierten App. Webpack 5 bleibt der richtige Weg, wenn Module Federation als Architektur-Pattern gesetzt ist oder bestehende Configs nicht angefasst werden sollen.

Die Wahl hängt 2026 weniger an der Performance — alle modernen Bundler sind „schnell genug” — als an Plugin-Reife, an Framework-Integration und an dem, was das Team gewohnt ist. Esbuild hat den Markt aufgemischt, Vite hat ihn neu sortiert, Bun und Turbopack drücken weiter — aber die produktiven Defaults für 2026 sind klar verteilt.


Ressort: Bundler