Tree-shaking
Tree-shaking - это оптимизация JavaScript-кода, которая удаляет ненужные функции, классы, переменные и другое из итоговой сборки.
Как это работает?
- Анализ импортов/экспортов – сборщик (Webpack, Rollup, Vite) определяет, какие модули реально используются.
- Удаление лишнего – код, который нигде не импортируется, исключается из бандла.
math.js
index.js
В результате сборки с tree-shaking в итоговом бандле останется только функция add
, а subtract
будет удалена, так как она не используется.
Tree Shaking делает бандлы меньше → сайты грузятся быстрее. Оптимизация особенно важна для больших проектов и библиотек.
Технические требования
- Работает только с ES-модулями (import/export)
- Требует поддержки сборщика:
Сборщик | Поддержка |
---|---|
Rollup | ✅ Лучшая |
Webpack | ✅ 2+ (с production) |
Parcel | ⚠️ Ограниченная |
Vite/Rollup дают лучший результат благодаря:
- Нативному ESM в dev-режиме
- Более точному анализу зависимостей
- Побочные эффекты (side effects) Код, изменяющий глобальное состояние, нельзя удалить:
- Асинхронные импорты
Почему это важно?
Пример оптимизации библиотеки: