webpack 世界のフロントエンドエンジニアの標準ツール


webpackとは
webpackはNode.js上で動作し、ブラウザ環境外のコンピュータやサーバーで使用できるJavaScriptランタイムです。また、 ESMと CommonJSの両方をサポートするJavaScriptアプリケーション用のモジュールバンドラとして、アプリケーションにおけるモジュールの依存関係を解析して1つまたは複数のパッケージにバンドルします。
JSファイルを1つのJSファイルに結合する
フロントエンドが担う役割は日々その範囲が大きくなり、それに伴ってフロントエンドが占めるコードの割合も増大しているので、それを1つのファイルに落とし込むとなると、ファイルサイズはかなりのものになります。そのファイルを初回アクセス時にユーザーに読み込ませるとなると、無関係のコードも含まれる1つのファイルの読み込みを、ユーザーは延々と待たされることになり、大変なストレスに感じます。
そして、これを解決するためにwebpackは複数のファイルから構成されたjsファイルを一つのjsファイルに結合し、ファイルを吐き出してサーバーからブラウザに送っています。

モジュール間の依存を解決する
1つのJavaScriptファイルに長い処理を書いてしまうと、可読性が悪くなります。これを解決するには複数ファイルへ分割することで解決できます。Webを中心とするフロントエンド界隈では、機能ごとに分割されたJavaScriptファイルのことを「モジュール」と呼びます。
JavaScriptモジュールはこのままだとレガシーブラウザやInternet Explorer 11では使用できないため、webpackを使うと、JavaScriptモジュールをブラウザで扱える形に変換できます。さらに複数のファイルの依存関係を考慮して自動的に結合します。

JSだけでなく、CSSや画像もバンドルできる
自動で結合するだけでも便利なのですが、webpackはJavaScriptだけでなくスタイルシートや画像までもバンドルできてしまうのです。先述の転送の最適化につながるメリットです。
さまざまなアセットをJavaScriptファイルにバンドルする(まとめる)ことができます。
まとめ
いかがでしたでしょうか。webpackは、今回紹介した機能以外にもJSを圧縮したり、画像を圧縮したり、ローカルサーバーの起動まで包括的な制作環境としての機能まであります。学習して身につけるのに少し時間かかるかもしれませんが、webpackを導入しておけば、フロントエンドエンジニアに必要な技術や開発環境が揃います。これを機にぜひ試してみてください。
参考:webpack
RECENT POSTS
Vol.198
親子関係から地域コミュニティへ──多様性を育み、関係をデザインする教育の未来
Vol.197
ビジョンと多様性、未来志向を組み入れた未来の環境デザインを考える
Vol.196
教育の多様性と未来を拓くビジョンメイキング──環境デザインから読み解く“これからの学び”
Vol.195
「One Health」と日本──人・動物・環境を一体で考える時代へ
Vol.194
AI時代におけるデジタル教育のメリットと課題、教育のこれから

Vol.193
AI時代にこそ必要なビジョンメイキングーーAIが変える“働く意味“と“組織のあり方“









