web-dev-qa-db-ja.com

HTTP / 2でWebpackを使用することの価値は何ですか

私は新しいプロジェクトを始めており、それについて前向きに考えているようにしています。私は過去にBrowserifyを使用しました。新しいプロジェクトでは、Webpack、Rollup、またはSystemJSのいずれかを使用したいと考えています。 Webpackは、たくさんのすばらしい機能を備え、最も成熟しているようです。

ただし、WebpackがHTTP/2の採用によって1〜2年で無関係になることを心配しています。では、HTTP/2を介して提供されるサイトにWebpackが提供する価値は何でしょうか。私は意見を探しているのではなく、HTTP/2でWebpackを使用する利点の実際の説明を探しています。メリットがない場合、またはメリットがほとんどない場合も、私の判断に役立ちます。

28
battmanz

TL; DR

HTTP/1.1では、パフォーマンスを得るために要求をできるだけ少なくする必要がありました。 HTTP/2では、リクエストごとのパフォーマンスへの影響は最小限ですが、Webpackなどのバンドルツールを必要とするリソースの制約や依存関係の管理に影響を与える可能性があります。

ロングバージョン:

HTTP/2はクライアントからサーバーへの多重化された非同期の同時クエリを許可しますが、実際に接続しているサーバーがそれらを処理するための無制限の容量を持っているか、それらを許可します。

接続時に送信されるSETTINGSフレームでは、ほとんどのサーバーが同時ストリームの数を100などの合理的な値に制限します。これは、たとえば、大きなバンドルされていない場合に問題となる100を超える同時リクエストを発行できないことを意味しますReact何百ものjsファイルを持つアプリ。

さらに、多くの場合、JavaScriptファイル間に推移的な依存関係があり、依存関係をすべてバンドルしない場合、ブラウザーは以前の応答を受信したときにのみ依存関係を検出し、HTTP/2つの利点。 (または、サーバーは依存関係を自動的にプッシュできるかもしれませんが、これにより他の一連の問題が発生します)。

これらの理由により、Webpackを使用して多数の同種のバンドルをパッケージ化し、最大同時リクエストがサーバー制限を超えないようにすると同時に、効率的なブラウザーキャッシュを活用できるようにバンドルを細かく保つことは理にかなっています。

19
rluta