intermediate

Размер bundle

Контролируйте стоимость JavaScript и CSS через review зависимостей, tree shaking, route budgets и анализ bundle.

Размер JavaScript и CSS bundle влияет на download, parse, compile и execution — особенно на mobile. Контролируйте через дисциплину зависимостей, tree shaking, route budgets и review по analyzer.

| Техника | Эффект | |---------|--------| | Tree shaking | Удаление неиспользуемых ESM export при side-effect free | | Route budgets | Падение CI при превышении chunk лимита в KB | | Dependency audit | Замена тяжёлых библиотек (moment → dayjs, lodash → точечные импорты) | | Compression | Brotli/gzip на CDN; не отдавать dev source maps пользователям |

					npx webpack-bundle-analyzer stats.json
# или: next build && npx @next/bundle-analyzer
				

Измеряйте **transferred** и **parsed** size на route, а не только вес репозитория. Third-party scripts (analytics, chat) часто ломают LCP/INP.

На интервью: tree shaking vs code splitting; роль `sideEffects: false`; barrel files; когда маленькая зависимость тянет polyfills.

Типовые ошибки: импорт целых icon/UI библиотек; дубликаты React; locale data всех языков на каждой странице.

Компромисс — удобство разработки (большие SDK) против сетевого и CPU бюджета пользователя.

Чеклист:

  • JS budgets per route в CI.
  • Analyzer после крупных зависимостей.
  • Dynamic import для тяжёлых опций.
  • Регулярный audit third-party тегов.