メインコンテンツまでスキップ

アーキテクチャ

metatellプラグインシステムの技術的な詳細とアーキテクチャについて解説します。

Module Federation​

metatellは@module-federation/enhancedを使用して、プラグインを動的にロードします。各プラグインはユニークなUUID(VERSION_ID)を持ち、ビルド時に以下の形式でエクスポートされます。

// federationConfig.js
{
name: process.env.VERSION_ID,
filename: "remoteEntry.js",
exposes: {
"./ComponentName": "./src/components/ComponentName"
}
}

リモートエントリ​

プラグインはビルド後、remoteEntry.jsファイルとして公開され、metatellクライアントが実行時にロードします。

メタデータ構造​

各プラグインはmetadata.jsonで定義されます。

項目説明必須
nameプラグインの名前(package.jsonから取得)✓
versionプラグインのバージョン(package.jsonから取得)✓
descriptionプラグインの説明(package.jsonから取得)✓
typeプラグインの種類(テンプレートで定義済み)✓
versionIdプラグインの一意識別子(UUID)✓
{
"name": "my-plugin",
"version": "1.0.0",
"description": "カスタムプラグイン",
"type": "CustomOverlay",
"versionId": "12345678-1234-1234-1234-123456789abc"
}