awesome-everything EN
↑ Обратно к восхождению

Архитектура фронтенда

Пайплайны сборки: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту — стыки стадий, причины провала tree-shaking, dev/prod-паритет, content hashing и компромиссы скорости инструментов.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов поперёк всего юнита. Каждый отражает решение, которое ты принимаешь, пока бандл регрессирует, dev-only баг уезжает в прод или стадия сборки выбивает таймаут в CI — не определение для заучивания, а компромисс, который надо взвесить.

Цель

Убедись, что связываешь пять стадий пайплайна, причины провала tree-shaking, причины расхождения dev и prod и компромиссы content hashing и выбора инструмента — тот синтез, к которому вёл обзорный урок.

Викторина

Коллега меняет import debounce from 'lodash/debounce' на import _ from 'lodash', и основной бандл вырастает на ~200 KB. Почему tree-shaking не выкинул неиспользуемые функции?

Викторина

Чистая ESM-библиотека утилит всё равно тащит мёртвый код после сборки, хотя все импорты выглядят неиспользуемыми. Наиболее вероятная причина?

Викторина

Фича работает в dev-сервере Vite, но ломается после vite build. Какова наиболее вероятная структурная причина, а не разовая случайность?

Викторина

Почему замена Babel на esbuild или SWC срезает стадию transform на 90%+, а стадия bundle редко получает такое же ускорение?

Викторина

Вернувшиеся пользователи перекачивают большой vendor-чанк при каждом деплое приложения, хотя React и зависимости не менялись. Фикс?

Викторина

Исходник — чистый ESM, но prod-бандл всё равно тащит целую зависимость, которую должен был отшейкать. Подозреваемая — стадия transform. Почему?

Итог

Сквозная линия: сборка — это resolve → transform → bundle → minify → emit, и стыки между стадиями — это где живут баги. Tree-shaking требует статического ESM, поэтому его ломают CommonJS, необъявленные side effects и transform-ы, понижающие ESM до CJS до того, как bundler заглянет. Transform параллелен (поэтому там выигрывают компилируемые инструменты), а bundle остаётся последовательным. Dev и prod гоняют разные инструменты — валидируй реальную prod-сборку. И content hashing окупается только если отделить стабильный vendor-код от часто меняющегося кода приложения.

Продолжить восхождение ↑Пайплайны сборки: тест на свободное припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.