【ばんどらー】

バンドラー とは?

最終更新:
💡 コードのつながりをたどって、配布用にまとめる

入口となるファイルから依存関係をたどり、必要なコードをまとめて配布用のファイルを作るツール。出力は1ファイルとは限らず、複数の入口やコード分割に応じて複数になる。

📌 このページのポイント
依存関係をたどって配布用にする 開発用コード main.js import utils.js style.css バンドラー 依存関係を解析 配布用の例 app.js lazy.js style.css 1ファイルに限らず、必要に応じて分ける
分割して出力する例。出力の数やCSSの扱いは設定による。
ひよこ ひよこ
バンドラーは、何をまとめるの?
ペンギン先生 ペンギン先生
アプリの入口から、読み込むモジュールと、そのモジュールが読み込むものをたどり、配布用のコードにまとめるよ。単にフォルダー内の全ファイルを順番に連結する処理とは違うんだ。
ひよこ ひよこ
出力は必ず1つのJavaScriptファイル?
ペンギン先生 ペンギン先生
複数になることもあるよ。入口が複数あったり、共通部分や後から使う機能を別ファイルに分けたりする。CSSなどの扱いも設定によるので、全部が1つのJavaScriptに入るとは限らないんだ。
ひよこ ひよこ
ファイルを減らすと、必ず速くなる?
ペンギン先生 ペンギン先生
通信の回数を減らせる場合はあるけれど、大きすぎるファイルを最初に読むと待ち時間が増えることもあるよ。コード分割で必要なときに読み込む方法もあり、サイズや実際の読み込みを確認するんだ。
ひよこ ひよこ
Webpack、esbuild、Viteは同じ種類?
ペンギン先生 ペンギン先生
Webpackやesbuildはバンドル機能を持つツールだよ。Viteは開発サーバーなども備えるビルドツールで、現在の公式ガイドでは本番ビルドにRolldownを使うと説明している。役割の範囲は同じではないんだ。
ひよこ ひよこ
使われないコードも全部消してくれる?
ペンギン先生 ペンギン先生
不要なコードを除くツリーシェイキングを備えるツールがあるよ。ただし解析できる形式や副作用、設定によって残るコードもある。バンドルすれば必ず最小になるという保証ではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「バンドラー」って出てきたら「コードの依存関係をたどって配布用にまとめるツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Bundler」 = 束にまとめるもの
💬 Bundleは束という意味だよ。開発中のコードを依存関係に沿ってまとめるので、この名前。すべてを必ず1ファイルに詰めるという意味ではないんだ。

参考資料

← 用語集にもどる