Для чего нужен Webpack
Что проверяют
Понимаете ли вы, зачем вообще нужен сборщик, и в курсе ли, что сегодня выбор шире.
Как отвечать
Webpack собирает исходники в файлы, которые понимает браузер: строит граф зависимостей от точки входа, прогоняет файлы через загрузчики и отдаёт готовые бандлы.
Основные задачи, которые он решает:
- модули: собирает импорты в бандл, разрешает зависимости, устраняет дубли;
- не только JavaScript: загрузчики превращают TypeScript, JSX, SCSS, изображения и шрифты в то, что можно отдать браузеру;
- разделение кода: динамические импорты становятся отдельными чанками, общие зависимости выносятся;
- оптимизация: минификация, удаление недостижимого кода, хеши в именах файлов для кеширования;
- разработка: сервер с горячей заменой модулей, карты кода для отладки;
- окружения: подстановка переменных и разные настройки для разработки и продакшена.
Дальше честно про современный контекст, это и отличает живой ответ от пересказа документации: сегодня чаще берут Vite (на esbuild и Rollup) за скорость запуска и мгновенную замену модулей, esbuild и SWC как быстрые компиляторы, Rollup для библиотек, Turbopack в Next.js. Webpack остаётся там, где большая настроенная сборка и много собственных загрузчиков, переписывать которые дороже, чем поддерживать.
Где спотыкаются
Не могут объяснить разницу между загрузчиком и плагином: первый преобразует файл, второй вмешивается в процесс сборки.
Считают, что сборщик нужен только для минификации.
Тащат сложную сборку в маленький проект, где хватило бы одного инструмента с нулевой настройкой.