Используя последние версии Angular & CLI (~ 6.1.6) и новейшую библиотеку @ angular / material (~ 6.4.7), я обнаружил довольно существенное снижение производительности при использовании импорта из @ angular / material's основная точка входа (public_api.ts
):
import { MatButtonModule } from '@angular/material';
Если я обновлю инструкцию импорта для использования вторичной конечной точки:
import { MatButtonModule } from '@angular/material/button';
Мой пакет поставщика уменьшен на ~ 2,6 МБ, а скорость рендеринга страницы уменьшена на ~ 200 мс.
С возможностью сотрясения дерева @angular/cli
, конечный размер сборки продукта эквивалентен любому из операторов импорта. В результате я чувствую, что люди часто предпочитают семантику разработки более краткого оператора импорта, не понимая / не понимая потери производительности dev-time.
Почему не обсуждается вопрос о снижении производительности за "импорт бочек" третьей стороной? Мне было очень трудно найти какую-либо документацию по процессу принятия решений и / или влиянию на производительность этих вариантов.