Выбор ответа Middle Сборщики обновлено

Почему Vite быстро стартует в dev

Вопрос

Почему dev-сервер Vite обычно стартует заметно быстрее, чем webpack на том же большом проекте?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Vite не собирает граф заранее, а отдаёт ES-модули по запросу. webpack перед стартом обходит и собирает весь граф.

Варианты ответа

  1. Vite написан на Rust целиком, а webpack на JavaScript и потому медленнее
  2. Vite в dev не проверяет синтаксис и не парсит код
  3. Vite не собирает граф заранее, а отдаёт ES-модули по запросуправильный ответ
  4. Vite кеширует готовый бандл в браузере между запусками

Разбор

webpack перед стартом обходит и собирает весь граф. Vite отдаёт модули по запросу браузера, поэтому стартовое время почти не зависит от размера проекта. Зависимости из node_modules один раз предварительно собираются.

  • Vite написан на TypeScript, быстрые части (esbuild, Rolldown) на Go и Rust, дело не в языке целиком.
  • Синтаксис проверяется: файл с ошибкой не трансформируется.
  • Бандл в браузере между запусками не хранится, в dev бандла приложения вообще нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме