В чем разница между сборщиками?
Продвинутые темы
Сборщики (Webpack, Vite, Rollup, esbuild, Parcel) различаются скоростью, конфигурацией, назначением и внутренним движком.
Основные сборщики
Webpack
- Самый мощный и гибкий, огромная экосистема loaders/plugins.
- Много конфигурации, медленнее в dev на больших проектах.
- Для сложных приложений с нестандартными требованиями.
Vite
- Быстрый dev-сервер на нативных ES-модулях; с Vite 8 трансформации и прод-сборку выполняет Rolldown (Rust, API совместим с Rollup) вместе с Oxc, до Vite 8 — esbuild + Rollup.
- Минимум конфигурации, мгновенный HMR.
- Современный выбор для SPA.
Rollup
- Заточен под библиотеки: чистый ES-модульный вывод, отличный tree shaking.
- Компактные бандлы.
esbuild
- Написан на Go, чрезвычайно быстрый (в десятки раз).
- Использовался внутри Vite до v8; как самостоятельный — для скорости.
Parcel
- Zero-config, автоматическая настройка.
- Для быстрого старта без конфигурации.
Оси различий
- Скорость: esbuild/Vite быстрые; Webpack медленнее.
- Конфигурация: Vite/Parcel — минимум; Webpack — много.
- Назначение: Rollup — библиотеки; Webpack/Vite — приложения.
- Движок: Vite (Rolldown + Oxc с v8, раньше esbuild + Rollup), esbuild (Go), Webpack (JS).
Как выбирать
- Новое SPA → Vite (скорость, простота).
- Библиотека → Rollup.
- Сложные кастомные требования → Webpack.
- Максимальная скорость трансформации → esbuild.
Коротко для собеседования
Webpack — мощный, гибкий, много конфига, медленнее. Vite — быстрый dev на ES-модулях, сборка через Rolldown (с v8; раньше esbuild + Rollup), минимум конфига — современный выбор для SPA. Rollup — для библиотек (tree shaking). esbuild — очень быстрый (Go). Parcel — zero-config. Выбор по скорости, конфигурации и назначению.