The bundler wars are largely over. Vite won the developer experience battle. Webpack still owns legacy production apps. Here's the state of the art.
Cold start time on a medium React project:
Webpack 5: 8.2s
Vite: 312ms
Turbopack: 280ms
HMR (Hot Module Replacement) after code change:
Webpack 5: 800ms - 2s
Vite: ~50ms
Turbopack: ~30ms
This difference is not academic. It changes how fast you iterate.
Vite doesn't bundle in development. It serves ES Modules directly:
Browser requests /src/App.jsx
↓
Vite transforms it on-demand (TypeScript, JSX)
↓
Browser receives native ES Module
↓
Browser requests its imports individually
No bundle = nothing to wait for. The page loads as fast as the browser can resolve imports.
# React
npm create vite@latest my-app -- --template react-ts
# Vue
npm create vite@latest my-app -- --template vue-ts
# Svelte
npm create vite@latest my-app -- --template svelte-tsThere's almost no reason to start a new project with Webpack in 2026. Vite is faster, simpler, and has excellent ecosystem support.