Содержит ли vendor.bundle.js библиотеки, импортированные в лениво загруженные модули?
Да, все, что классифицируется как библиотека поставщика, входит в комплект поставщика.
Или содержит только библиотеки, импортированные из AppModule
Нет, но вы можете найти в блоге сообщения, относящиеся ко времени Angular 2 (когда он был впервые выпущен), в котором состояние AppModule контролировало пакет поставщиков. С тех пор многое изменилось.
В Angular 5 вы можете создать файл src/vendor.ts
, который позволит вам импортировать модули, которые вы хотели поместить в комплект поставщика. Поддержка этой функции была удалена в Angular 6 (по крайней мере, я так думаю, но я никогда не использовал ее).
В Angular 6 все гораздо более автоматизировано.
размер vendor.bundle.js составляет 9,5 МБ при использовании ng serve и 3,22 МБ при использовании ng build.
Нет встряхивания дерева и оптимизация , выполняемая при запуске ng server
по умолчанию. Вы должны заботиться о размерах комплектов только после выполнения production build.
Кроме того, вы не должны использовать ng server
в качестве рабочего веб-сервера.
Анализатор пакетов Webpack
Рекомендую попробовать анализатор пакетов. Это лучший способ осмотреть пакеты, чтобы увидеть, что находится внутри, и сравнить разницу между разработкой и производственной сборкой.
https://www.npmjs.com/package/webpack-bundle-analyzer