The tools that turn hundreds of source files into a handful of optimized browser bundles. The single most consequential build-time choice in a modern frontend.
← Back to Client Sideimport, and builds a graph of all source files.lodash-es only ships what you use.| Tool | Built in | Sweet spot |
|---|---|---|
| Vite | Rollup + esbuild + native ESM | Modern default for SPAs & SSR; instant dev server. |
| Webpack | JavaScript | Mature, plugin-rich, still the default in many enterprise codebases. |
| esbuild | Go | 10–100× faster than JS bundlers; powers many other tools. |
| Rollup | JavaScript | Library author's favorite — smallest, cleanest output. |
| Parcel | Rust + JS | Zero-config, automatic everything. |
| Turbopack | Rust | Vercel's next-gen bundler powering Next.js (Webpack successor). |
| Rspack | Rust | Drop-in Webpack-compatible bundler from ByteDance. |
| Bun (bundler) | Zig | Bun's all-in-one runtime + package manager + bundler. |
import points (node_modules / aliases / virtual modules).dist/.const Modal = lazy(() => import('./Modal')) for heavy UI.| — | Vite | Webpack |
|---|---|---|
| Dev server | Native ESM, no bundling — instant | Bundles upfront — slow on big apps |
| HMR | Sub-50ms by design | Fine, but slower |
| Production build | Rollup under the hood | Webpack with optimization plugins |
| Config complexity | Minimal, sensible defaults | Powerful, often verbose |
| Plugin ecosystem | Growing fast (Rollup-compatible) | Largest, most mature |
Source maps map minified production code back to original source — essential for debugging in browser dev tools and parsing errors in Sentry. Common modes: cheap-module-source-map (dev), hidden-source-map (prod, uploaded to Sentry, not exposed to users).
Most modern bundling tools are now written in Rust or Go: esbuild (Go), SWC, Turbopack, Rspack, Lightning CSS, Biome. Result: 10–100× faster builds, especially in monorepos.
hidden-source-map.Vite — fastest DX, sane defaults, growing ecosystem.
Rollup or tsup (esbuild) — smallest output, ESM/CJS dual builds.
Stay or migrate to Rspack — drop-in compatibility, much faster.
Whatever your meta-framework ships with (Turbopack increasingly).