Angular Tree Shaking: Как именно это работает? - PullRequest
2 голосов
/ 20 февраля 2020

В настоящее время мы пытаемся оптимизировать сложное приложение angular (производительность и размер пакета).

Мы обнаружили, что у нас есть частично неиспользуемые компоненты, но мы не уверены на 100% в них. В любом случае ... Вопрос, который мы сейчас задаем, заключается в том, как именно работает встряхивание дерева в Angular.

Вопрос 1) Если в массиве объявлений, импорта или поставщиков есть записи модуль, но модуль нигде не используется, они также удаляются при встряхивании дерева или они включены в окончательный комплект?

Пример:

@NgModule({
  imports: [
    FirstModule,
    SecondModule  // Is not used anymore (probably) but imported here
  ],
  declarations: [SampleComponent] // Is not used anymore (probably) but imported here
})
export class SampleModule {
}

Информация: Маршруты к этим модулям / компонентам уже удалены.

Вопрос 2) Достаточно ли удалить только эти компоненты из модулей маршрутизации, чтобы процесс встряхивания дерева прошел успешно?

Вопрос 3) Что должно быть сделано для оптимальной работы процесса сшивания деревьев?

Используется Angular Версия 8.2

1 Ответ

4 голосов
/ 20 февраля 2020

Вы можете использовать webpack-bundle-analyzer , который поможет вам визуализировать размер и различные используемые компоненты в вашем конечном выходном файле. Таким образом, вы можете быть уверены, что модуль используется или нет, и тогда вы можете безопасно удалить его.

...