Как общие модули и неиспользуемый импорт / объявления действительно влияют на производительность и размер пакетов (особенно с отложенной загрузкой)
Есть много связанных вопросов, но я не смог найти четкого и актуального ответа. Интересно, как компилятор Angular справляется с такими ситуациями:
- Некоторые неиспользуемые компоненты / службы / директивы / каналы объявлены в модуле. Компилятор Angular каким-то образом подбирает такие классы и удаляет их из производственной ленты?
- Общий подход заключается в использовании общего модуля для всех компонентов / служб / директив / каналов, которые используются более чем в одном модуле. Как это влияет на производительность и размер пакетов при использовании отложенной загрузки? Допустим, у меня есть 5 функциональных модулей, и все общие классы определены в общем модуле. Очень вероятно, что какой-то функциональный модуль будет использовать, например, только 15% общих элементов. Компилятор Angular каким-либо образом обрабатывает такие ситуации и загружает только используемые элементы из общего модуля при ленивой загрузке?
- Это связано со вторым вопросом. В моем приложении около 80% компонентов / служб / директив / каналов используются более чем одним функциональным модулем. Также все функциональные модули используют только около 15% элементов из общего модуля. Если весь общий модуль (80% моего приложения) должен быть загружен для всех функциональных модулей, имеет ли вообще смысл использовать отложенную загрузку? Я также думал о создании множества общих модулей, но этот подход кажется очень сложным для поддержки и расширения. Какая альтернатива?