добавлю к вышесказанному про http/2:
без "умных" server-push бандл содержащий весь код сайта для каждой страницы будет грузится быстрее отдельных модулей, даже если Вы грузите их далеко не все.
просто представьте, вы грузите html -> он обрабатывается -> начинает грузить стили, картинки и главный модуль js -> js обрабатывается -> грузит еще 5 модулей, которые после обработки грузят еще 50 модулей
а теперь просто подумайте - у Вас сотня файлов, которые грузятся параллельно в одном tcp потоке, к тому же обернутом в tls - что добавляет. оверхед на шифрование и дешифровку + добавим сюда оверхед на парсинг js, который будет задерживать сеть, а сеть его
выхода из этого 2
- или по прежнему отдавать все одним бандлом
- или настраивать push, но с этим тоже траблы, ибо помимо вычисления файлов нужных начальному запросу (хоть и сложно, но вполне реально), нужно предсказывать, а что у браузера уже в кэше (ошибемся - получим или начальный оверхед (не отдали нужное) или сожрем лишний трафик (отдали ненужное))