モジュールフェデレーションは、JavaScriptアプリケーションを分割するためのアーキテクチャパターン(サーバーサイドのマイクロサービスに似ています)であり、複数のJavaScriptアプリケーション(またはマイクロフロントエンド)間でコードとリソースを共有できます。
Rspackチームは、モジュールフェデレーション開発チームと緊密に連携し、モジュールフェデレーションを第一級でサポートしています。
モジュールフェデレーションには、次のような典型的なユースケースがいくつかあります。
モジュールフェデレーションは、以下のことに役立ちます。
モジュールフェデレーション(MF)には現在、複数のメジャーバージョンがあり、ニーズに基づいて選択できます。
以下は、いくつかのバージョンの特徴です。
バージョン | 説明 | 機能 | ユースケース |
---|---|---|---|
MF v2.0 | - モジュールフェデレーションの拡張バージョン - モジュールフェデレーションv1.5に基づいて実装 |
- 動的なTSタイプヒント、Chrome Devtools、プリロードなどの追加のすぐに使える機能を提供 - 大規模なWebアプリケーションをサポートするマイクロフロントエンドアーキテクチャにより適している - モジュールフェデレーション1.5のすべての機能を含む |
モジュールフェデレーション2.0の高度な機能を使用する必要があるプロジェクト |
MF v1.5 | Rspackに組み込まれたバージョン | - モジュールフェデレーションv1.0のモジュールエクスポート、モジュールロード、依存関係共有機能をサポート - ランタイムプラグイン機能を追加し、ユーザーがモジュールフェデレーションの動作と機能を拡張できるようにしました |
モジュールフェデレーション2.0の追加機能を使用する必要がないプロジェクト |
MF v1.0 | webpack.container.ModuleFederationPluginに基づいて実装されたバージョン | - 今後更新されることはありません - モジュールフェデレーションv1.5またはv2.0バージョンを使用することをお勧めします |
webpackからRspackに移行し、ロジックを元のロジックとできるだけ一致させたいプロジェクト |
モジュールフェデレーション 2.0 は、モジュールフェデレーションに基づいて、動的な TS タイプヒント、Chrome devtools、ランタイムプラグイン、プリロードなど、いくつかの追加のすぐに使える機能を提供し、モジュールフェデレーションを大規模な Web アプリケーションをサポートするマイクロフロントエンドアーキテクチャにより適したものにしています。モジュールフェデレーション v2.0 は v1.5 をベースに実装されています。
モジュールフェデレーション v2.0 を使用するには、追加の `@module-federation/enhanced` プラグインをインストールする必要があります。
具体的な使用方法の詳細は、モジュールフェデレーション v2.0 公式ドキュメント を参照してください。
これは Rspack に組み込まれているバージョンです。モジュールフェデレーション v1.0 のモジュールエクスポート、モジュールロード、依存関係共有などの機能をサポートすることに加えて、ランタイムプラグイン機能も追加され、ユーザーはモジュールフェデレーションの動作と機能を拡張できます。
追加のプラグインをインストールすることなく、Rspack の ModuleFederationPlugin を介して使用できます。
このバージョンは、webpack.container.ModuleFederationPlugin との互換性のために実装されています。
Rspack の ModuleFederationPluginV1 を介して使用できます。
モジュールフェデレーション v1.0 は今後更新されることはありません。モジュールフェデレーション v1.5 または v2.0 バージョンを使用することをお勧めします。