关于 datahub-mfe-create-app
用于通过 Webpack Module Federation 搭建 DataHub 微前端应用的技能。它收集应用设置,生成 7 个配置文件,并引导安装、启动和验证。
主要功能
- 01收集应用名称、描述、端口和 API 需求
- 02生成 7 个应用及配置文件
- 03按需配置 GraphQL 代理
- 04指导安装并启动开发服务器
- 05验证远程入口和独立页面
适用场景
- 01启动新的 DataHub MFE 应用
- 02创建带 GraphQL 代理的脚手架
- 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 工具收集以下信息。
| 问题 | ID | 选项 |
|---|---|---|
应用名称(kebab-case,例如 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):转换为 camelCase 并追加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 名称(camelCase + 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