プラグインシステムの概要

プラグインシステムの概要

A diagram of the Parcel plugin system

Parcelのアーキテクチャ

#

複雑なことをしていなくても、Parcelをよく使うのであれば、時間をかけて仕組みを理解することをお勧めします。

エンティティ

#

Parcelのフェーズ

#

Parcelは大まかにいくつかのフェーズを実行します

**解決**フェーズと**変換**フェーズは並行して動作し、すべてのアセットのグラフを構築します。

アセットは**バンドリング**フェーズでバンドルにグループ化されます。各バンドルの出力ファイル名は**ネーミング**フェーズで決定されます。

その後、**パッケージング**、**最適化**、**圧縮**フェーズは並行して動作し、すべてのバンドルの最終的なコンテンツを生成します。

**パッケージング**フェーズでは、各バンドル内のアセットをマージして出力ファイルにします。

**最適化**フェーズでは、各バンドルの内容を変換します。これが完了すると、Parcelは各バンドルのコンテンツハッシュを決定し、最終的な出力ファイル名に適用します。

最後に、**圧縮**フェーズでは、各出力ファイルがファイルシステムに書き込まれる際に、1つ以上のエンコーディングを生成します。

アセットグラフ

#

解決フェーズと変換フェーズ中に、Parcelはアプリまたはプログラム内のすべてのアセットを検出します。すべてのアセットは、Parcelがプルインする他のアセットへの独自の依存関係を持つことができます。

これらすべてのアセットとそれらの相互依存関係を表すデータ構造は、「アセットグラフ」と呼ばれます。

バンドルグラフ

#

Parcelがアセットグラフ全体を構築したら、それをバンドルグラフに変換します。バンドルグラフにはアセットグラフが含まれており、さらにどのアセットをバンドルにグループ化する必要があるか(およびこれらのバンドルの関係)が記述されています。

一部のアセットはアプリへの「エントリ」ポイントと見なされ、個別のバンドルとして残ります。たとえば、`index.html`ファイルが`about.html`ファイルにリンクされている場合、それらはマージされません。

プラグインタイプの完全なリスト

#