Nowadays, almost every web developer uses one bundler or another. Currently, Vite is the fastest-growing major bundler adopted by many frameworks.
|Vite||53k||A build tool that aims to provide a faster and leaner development experience for modern web projects.|
|SWC||26k||Rust-based platform for both compilation and bundling, used by tools like Next.js, Parcel, and Deno.|
|Parcel||42k||On top of SWC, Parcel implements dependency collection, bundling, scope hoisting, tree shaking, Node emulation, hot reloading, and more.|
|Esbuild||34k||An extremely fast bundler for the web written in Go.|
Even though native ESM is now widely supported, shipping unbundled ESM in production is still inefficient (even with HTTP/2) due to the additional network round trips caused by nested imports. To get the optimal loading performance in production, it is still better to bundle your code with tree-shaking, lazy-loading and common chunk splitting (for better caching).
While esbuild is extremely fast and is already a very capable bundler for libraries, some of the important features needed for bundling applications are still work in progress - in particular code-splitting and CSS handling. For the time being, Rollup is more mature and flexible in these regards.