Ответ 1
TL; DR
В HTTP/1.1 вам нужно сделать как можно меньше запросов, чтобы получить производительность; в HTTP/2 вы оказываете минимальное влияние на производительность для каждого запроса, но все равно можете столкнуться с ограничениями ресурсов и управлением зависимостями, для которых потребуется пакетный инструмент, такой как webpack.
Длинная версия:
Webpack (или любой другой поставщик) все еще может предоставлять значение в мире HTTP/2, потому что, хотя HTTP/2 позволяет мультиплексированные, асинхронные, одновременные запросы от клиента к серверу, это не означает, что фактический сервер, re-соединение имеет неограниченную способность обрабатывать их или даже позволяет им.
В кадре SETTINGS, отправленном при подключении, большинство серверов будут ограничивать количество параллельных потоков до разумного значения, такого как 100. Это означает, что вы не можете выпустить более 100 одновременных запросов, что является проблемой, если у вас есть, например, большое разделенное приложение React с сотнями js файлов.
Кроме того, во многих случаях у вас есть транзитивные зависимости между файлами javascript, и если вы не связываете все зависимости, вам потребуется много запросов на повторную поездку, поскольку браузер будет обнаруживать зависимости только тогда, когда он получает предыдущие ответы, отрицая преимущества HTTP/2. (В качестве альтернативы сервер может автоматически запускать зависимости, но это создает целый ряд проблем).
По этим причинам имеет смысл использовать webpack для упаковки ряда однородных пакетов, чтобы убедиться, что ваши максимальные одновременные запросы остаются ниже пределов сервера, при этом ваш пакет достаточно гранулирован, чтобы эффективно использовать кеширование браузера.