エントリーポイントとは?ビルドが始まる場所
エントリーポイントとは、bundlerが依存関係グラフを構築する際の起点となるファイルです。そこから到達可能なものすべてがbuildに含まれます。
bundlerはどこかから始めなければなりません。エントリーポイントはその起点となるファイルで、通常はアプリのルートやページのスクリプトです。そこからbundlerはimportを外側へたどり、buildに必要なすべてのモジュールを発見します。エントリーポイントを理解すれば、なぜ一部のコードがbundleに含まれ、一部が含まれないのか、そしてなぜアプリが複数のエントリーを持ち得るのかが分かります。
エントリーがビルドをどう定義するか
bundlerはエントリーをグラフのルートとして扱います。エントリーから直接的または推移的にimportされたモジュールはすべて含まれます。エントリーから到達可能なものが何もimportしないコードは、単にbundleされません。
複数のエントリーポイント
プロジェクトは複数のエントリーを宣言できます。たとえばページごとに1つ、あるいはアプリ用に1つと管理パネル用に1つといった具合です。各エントリーは独自の出力を生成し、bundlerはそれらにまたがる共有コードを共通chunkにまとめられます。
エントリーと出力
- エントリーは、buildが起点とする入力ファイルです。
- 出力は、生成されたbundleまたはchunkです。
- 1つのエントリーは、splittingによって複数の出力ファイルを生成できます。
ライブラリのエントリーポイント
公開されるパッケージでは、エントリーは利用者がimportするものです。package.jsonのmain、module、exportsフィールドがこれらのエントリーを宣言し、ツールが正しいファイルを選べるようにします。だからこそ、設定を誤ったエントリーは全員に対してライブラリを壊してしまうことがあります。
CI/CDにおけるエントリーポイント
設定されたエントリーは、CIのbuildが何を生成し、いくつのartifactが出荷されるかを決めます。エントリーを追加または削除すると出力セットが変わるため、pipelineのbuild出力チェックによって、deploy前に期待されるファイルが生成されたことを確認できます。
重要なポイント
- エントリーポイントは、bundlerが依存関係グラフの解決を開始する場所です。
- 複数のエントリーは、共有chunkを持つ複数の出力を生成します。
- CIの出力チェックは、期待されるartifactが生成されたことを確認します。