Подтвердить что ты не робот

Какова ценность использования Webpack с HTTP/2

Я начинаю новый проект, и я пытаюсь передумать. Я использовал Browserify в прошлом. Для моего нового проекта я хотел бы использовать либо Webpack, Rollup, либо SystemJS. Webpack выглядит очень зрелым с множеством потрясающих возможностей.

Я обеспокоен тем, что Webpack будет неактуальным через год или два с принятием HTTP/2. Поэтому мне интересно, какое значение предлагает Webpack для сайта, обслуживаемого через HTTP/2? Я не ищу мнения, а фактическое объяснение преимуществ использования Webpack с HTTP/2. Если нет никаких преимуществ или очень мало преимуществ, это также поможет мне в решении.

4b9b3361

Ответ 1

TL; DR

В HTTP/1.1 вам нужно сделать как можно меньше запросов, чтобы получить производительность; в HTTP/2 вы оказываете минимальное влияние на производительность для каждого запроса, но все равно можете столкнуться с ограничениями ресурсов и управлением зависимостями, для которых потребуется пакетный инструмент, такой как webpack.

Длинная версия:

Webpack (или любой другой поставщик) все еще может предоставлять значение в мире HTTP/2, потому что, хотя HTTP/2 позволяет мультиплексированные, асинхронные, одновременные запросы от клиента к серверу, это не означает, что фактический сервер, re-соединение имеет неограниченную способность обрабатывать их или даже позволяет им.

В кадре SETTINGS, отправленном при подключении, большинство серверов будут ограничивать количество параллельных потоков до разумного значения, такого как 100. Это означает, что вы не можете выпустить более 100 одновременных запросов, что является проблемой, если у вас есть, например, большое разделенное приложение React с сотнями js файлов.

Кроме того, во многих случаях у вас есть транзитивные зависимости между файлами javascript, и если вы не связываете все зависимости, вам потребуется много запросов на повторную поездку, поскольку браузер будет обнаруживать зависимости только тогда, когда он получает предыдущие ответы, отрицая преимущества HTTP/2. (В качестве альтернативы сервер может автоматически запускать зависимости, но это создает целый ряд проблем).

По этим причинам имеет смысл использовать webpack для упаковки ряда однородных пакетов, чтобы убедиться, что ваши максимальные одновременные запросы остаются ниже пределов сервера, при этом ваш пакет достаточно гранулирован, чтобы эффективно использовать кеширование браузера.