Tree shaking — механизм удаления неиспользуемого кода из финального
бандла. В Angular он тесно связан с модулем сборки
Angular CLI и инструментом Webpack.
import/export) являются
критически важными для Tree shaking. Код, использующий CommonJS
(require/module.exports), не будет корректно
очищаться.import()) позволяет
ленивую загрузку модулей, что уменьшает размер
начального бандла и ускоряет загрузку приложения.Production mode
ng build --prod
Включает:
Lazy loading модулей Разделение приложения на лениво загружаемые модули снижает нагрузку на основной бандл:
const routes: Routes = [
{ path: 'feature', loadChildren: () => import('./feature/feature.module').then(m => m.FeatureModule) }
];Использование providedIn: 'root' в
сервисах уменьшает дублирование кода в нескольких модулях.
Оптимизация зависимостей
import { map } from 'rxjs/operators')Анализ бандла Команда
source-map-explorer dist/main.js или
webpack-bundle-analyzer позволяет определить, какие модули
увеличивают размер бандла.
fullTemplateTypeCheck и
strictInjectionParameters помогают выявлять неиспользуемые
переменные и сервисы на этапе компиляции.Использование Tree shaking и правильной архитектуры ленивой загрузки существенно снижает размер бандлов и повышает производительность Angular-приложений.