datahub-mfe-create-app について
Webpack Module Federation を使って DataHub のマイクロフロントエンドアプリを作成するスキルです。設定を集めて7つのファイルを生成し、インストール、起動、検証を案内します。
主な機能
- 01アプリ名、説明、ポート、API要否の収集
- 02アプリと設定ファイル7点の生成
- 03任意のGraphQLプロキシ設定
- 04インストールと開発サーバー起動の案内
- 05リモートエントリーと単独ページの検証
活用シーン
- 01新しいDataHub MFEアプリの開始
- 02GraphQLプロキシ付きスキャフォールドの作成
- 03開発アプリの配信状態の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ datahub-project/ datahub-skills --skill datahub-mfe-create-appインストール後、Claude Code で/datahub-mfe-create-appを入力して読み込まれたか確認します。
同梱ファイルassets/templates.md
詳細
DataHub MFE アプリを作成する
Webpack Module Federation を介して DataHub と統合する、完全に動作するマイクロフロントエンドアプリをスキャフォールドします。必要な 7 つのファイルをすべて生成し、ビルドと検証の手順を案内します。
ステップ 1:情報を収集する
AskQuestion ツールを使って、以下の情報を 1 回の呼び出しで収集します。
| 質問 | ID | 選択肢 |
|---|---|---|
アプリ名(ケバブケース、例:team-dashboard) | app_name | test-app / N/A - I'll fill it in later |
| アプリの機能の簡単な説明 | app_desc | test-description / N/A - I'll fill it in later |
| 開発サーバーのポート | port | 3002 / 3003 / 3004 / 3005 / 3006 |
| アプリから DataHub GraphQL API を呼び出す必要がありますか? | needs_graphql | Yes / No |
app_name と app_desc では、N/A - I'll fill it in later の選択肢だけを表示してください。ワークスペースから値を提案してはいけません。ユーザーが自分で入力します。
app_name から名前を導出する
team-dashboard のような app_name の場合:
- ディレクトリ:
team-dashboard-mfe/(末尾に-mfeが付いていない場合は追加) - Module Federation 名(
MF_NAME):キャメルケースに変換してMFEを追加 —teamDashboardMFE - パッケージ名:ディレクトリ名と同じ。例:
team-dashboard-mfe - 表示ラベル:各単語の先頭を大文字にする。例:
Team Dashboard
ステップ 2:ファイルを生成する
ワークスペースのルート(datahub-web-react/ と同じ階層)にディレクトリを作成します。templates.md のテンプレートを使って、必要な 7 つのファイルをすべて生成します。
すべてのテンプレートに以下の置換を適用します。
| プレースホルダー | 値 |
|---|---|
__APP_DIR__ | ディレクトリ名 |
__PACKAGE_NAME__ | パッケージ名 |
__APP_DESCRIPTION__ | ユーザーの説明 |
__PORT__ | 開発サーバーのポート |
__MF_NAME__ | Module Federation 名(キャメルケース + MFE) |
__DISPLAY_LABEL__ | 各単語の先頭を大文字にしたラベル |
__PUBLIC_PATH_DEV__ | http://localhost:<PORT>/ |
needs_graphql が Yes の場合は、webpack.config.js に GraphQL プロキシブロックを含めます(テンプレート内の {{GRAPHQL_PROXY}} が目印です)。No の場合は、ブロック全体を省略します。
生成するファイル
package.jsonwebpack.config.jssrc/mount.tsxsrc/index.tsxsrc/App.tsxtsconfig.jsonpublic/index.html
ステップ 3:インストールして起動する
まずアプリのディレクトリに cd します。webpack はワークスペースのルートではなく、アプリのディレクトリ内から起動する必要があります。
cd __APP_DIR__
npm install
npm start
webpack のコンパイルが完了するまで待ちます。開発サーバーが設定したポートで起動します。
ステップ 4:検証する
- ブラウザーで
http://localhost:<PORT>/remoteEntry.jsを開くか、curl でアクセスします。JavaScript が返されるはずです(404 や HTML のエラーページではありません)。 http://localhost:<PORT>/を開きます。単独で動作する開発ページが表示されるはずです。
どちらかの確認に失敗した場合は、webpack の出力を確認してエラーを修正してから先に進みます。
ステップ 5:次のステップ
ユーザーに次のように伝えます。
MFE アプリが起動しました!DataHub と統合するには、 datahub-mfe-configure-app スキルを使用してください。このスキルでは、 DataHub フロントエンド設定にこのアプリを追加し、
/mfe/<path>に表示して、必要に応じてナビゲーションサイドバーにも追加する手順を案内します。
作成した内容の概要を示します。
Created __APP_DIR__/ with 7 files:
package.json — dependencies and scripts
webpack.config.js — Module Federation + dev server
src/mount.tsx — mount() contract for DataHub
src/index.tsx — standalone dev entry point
src/App.tsx — starter React component
tsconfig.json — TypeScript config
public/index.html — dev HTML shell
Module Federation name: __MF_NAME__ ← use this as "MFE app name" in datahub-mfe-configure-app
Remote entry URL: http://localhost:__PORT__/remoteEntry.js
Module path: __MF_NAME__/mount