🛠 仕組み

Parcel はバンドルのツリーをアセットのツリーに変換します。

他の多くのバンドラーは基本的に JavaScript のアセットをベースにして、他のフォーマットのアセットを追跡しています。(たとえば、JS ファイルに文字列としてのインライン化など。) Parcel はファイルタイプにとらわれず、どんなタイプのアセットでもコンフィギュレーションなしに期待通りの方法で動作します。

Parcel のバンドリングプロセスには 3 つのステップがあります。

1. アセットツリーの構築

Parcel は入力として 1 つのエントリーアセットを取ります。エントリーアセットは任意のタイプで、JS ファイル、HTML、CSS、画像などです。特定のファイルタイプを処理するために、Parcel にはさまざまなアセットタイプが定義されています。アセットの解析、依存関係の抽出がされ、最終的にコンパイルされた形式に変換されます。これによりアセットのツリーが作成されます。

2. バンドルツリーの構築

アセットツリーが構築されると、バンドルツリーにアセットが配置されます。エントリーアセット用のバンドルが作成され、動的なimport()用の子バンドルが作成されます。これによりコード分割が発生します。

兄弟バンドルは、JavaScript から CSS ファイルをインポートした場合など、異なるタイプのアセットがインポートされると作成され、対応する JavaScript の兄弟バンドルに配置されます。

アセットが複数のバンドルで必要とされる場合、そのアセットはバンドルツリー内で最も近い共通の上位の階層まで引き上げられるため、複数回含まれることはありません。

3. パッケージング

バンドルツリーが構築された後、各バンドルはファイルタイプ固有のパッケージャによってファイルに書き込まれます。パッケージャは、各アセットのコードをブラウザによってロードされる最終ファイルにまとめます。

Help us improve the docs

If something is missing or not entirely clear, please file an issue on the website repository or edit this page.