Cold start: Webpack dev server phải bundle toàn bộ module graph rồi server mới sẵn sàng — project 1000 module mất 10-30 giây. Vite khởi động dưới 1 giây bất kể project to cỡ nào, vì nó không pre-bundle source.
- Pre-bundle dependency: Vite dùng esbuild pre-bundle
node_modulesđúng một lần rồi cache, browser chỉ nạp vài file thay vì hàng nghìn. Webpack thì bundle tất cả cùng nhau. - HMR: Webpack phải compile lại module bị đổi cùng các dependency của nó, module lớn có thể mất 1-10 giây. Vite chỉ invalidate đúng module đã đổi rồi lan lên theo import chain, thường dưới 100ms.
- Độ chính xác: Vite biết chính xác file nào đổi nên chỉ cập nhật đúng phần đó; đi kèm React Fast Refresh thì state của component còn được giữ nguyên.
Đánh đổi: Vite chạy dev bằng ESM còn production thì bundle bằng Rollup — hai môi trường có thể chạy ra kết quả khác nhau, dễ lệch nhất ở circular import và thứ tự nạp module.
Project càng lớn lợi thế của Vite càng rõ: cold start của Webpack tăng tuyến tính theo số module, còn Vite gần như không đổi. Turbopack (Next.js 13+) là bản kế nhiệm Webpack do Vercel viết bằng Rust, nhắm thẳng vào tốc độ dev mode của Vite.