itmo_conspects

Лекция 9. Сборщики

Сборщик (или бандлер, bundler) - это инструмент, который берёт множество файлов проекта (JavaScript-модули, CSS, изображения, шрифты) вместе с внешними зависимостями и объединяет их в один или несколько оптимизированных файлов для отправки клиенту в браузер

Сборщик обладает преимуществами перед обычной отправкой файлов:

Сборщик работает примерно так:

  1. Разработчик указывает главный файл (например, index.js)
  2. Бандлер анализирует все import и строит полное дерево зависимостей модулей
  3. К каждому файлу применяются необходимые трансформации (транспиляция из TypeScript в JavaScript, компиляция SCSS в CSS и тому подобное)
  4. Все модули объединяются в итоговый бандл (один или несколько файлов)
  5. Готовые статические файлы сохраняются на сервере, откуда они готовы к отправке клиенту

Рассмотрим несколько популярных сборщиков

Webpack

Webpack - самый популярный и давно существующий сборщик модулей для JavaScript-приложений. Несмотря на появление более быстрых конкурентов, в 2026 году Webpack остаётся стабильным, хорошо поддерживаемым и широко используемым инструментом, особенно в крупных корпоративных проектах

Ключевые особенности:

Webpack опубликовал дорожную карту, сфокусированную на трёх направлениях:

Webpack остаётся выбором для проектов, где требуется максимально тонкая и нестандартная настройка сборки, сложное разделение кода или где уже существует большая кодовая база и экосистема плагинов, которую сложно заменить

Vite

Vite - современный инструмент для фронтенд-разработки, созданный Эваном Ю (автором Vue.js). С момента появления Vite стремительно набрал популярность благодаря молниеносной скорости запуска сервера для разработки и горячей замены модулей

До версии 8 Vite использовал два разных сборщика: esbuild (для быстрой компиляции в режиме разработки) и Rollup (для продакшн-сборки). Такой подход имел минус: два конвейера обработки порождали расхождения и требовали синхронизации

В Vite 8 оба конвейера заменены на единый бандлер Rolldown, созданный командой VoidZero на языке Rust

Ключевые преимущества Vite 8:

Параллельно с Vite 8 команда VoidZero анонсировала Vite+ - унифицированную платформу, объединяющую сборку, пакетный менеджер и среду разработки в единую экосистему на базе инструментов, написанных на Rust

Vite - идеальный выбор для новых проектов, где важна скорость запуска и мгновенная обратная связь при разработке. Особенно хорошо подходит для одностраничных приложений (Single-page application), приложений на Vue/React/Svelte и любых задач, где не требуется глубокая кастомизация сборочного процесса

Rsbuild

Rsbuild - это слой поверх Rspack (Rust-реализации, совместимой с Webpack), созданный командой ByteDance. Его цель - предоставить максимально быструю сборку при сохранении совместимости с экосистемой Webpack

Ключевые нововведения:

Rsbuild особенно привлекателен для команд, которые хотят мигрировать с Webpack и получить прирост скорости на порядок, но при этом сохранить привычную экосистему плагинов и не переписывать конфигурацию с нуля.

Module Federation

Module Federation - это архитектурный паттерн и технология (изначально представленная в Webpack 5), позволяющая одному JavaScript-приложению динамически загружать код из другого приложения прямо во время выполнения. В отличие от обычного импорта пакета, это обмен компонентами, логикой и ресурсами между независимо развёртываемыми проектами

Цели, которые преследовали разработчики:

Версия Module Federation 2.0 стала результатом переработки внутренней архитектуры командой ByteDance в сотрудничестве с Заком Джексоном (автором оригинальной технологии)

Ключевые новшества:

На 2026 год Module Federation 2.0 активно используется в экосистеме ByteDance и за её пределами. Для Next.js официальной поддержки пока нет (рекомендуемый фреймворк - Modern.js от той же команды). В планах у разработчиков создание Module Federation 3.0 и Native ESM Federation


Подытожим:

Инструмент Сильные стороны Лучше всего подходит для
Webpack Максимальная гибкость, зрелая экосистема, нейтральное управление Крупные сложные проекты с нестандартными требованиями
Vite 8 Мгновенный старт сервера для разработки, высочайшая скорость сборки Новые одностраничные приложения, быстрая разработка, Vue/React/Svelte-проекты
Rsbuild 2.0 Совместимость с Webpack, но со скоростью языка Rust🦀, минимум конфигурации Миграция с Webpack, когда нужна скорость и привычный API
Module Federation 2.0 Динамическая загрузка кода между приложениями во времени исполнения Микрофронтенд-архитектуры, независимо развёртываемые команды