mcpField
R
rhdh-plugin-nfs-migration

rhdh-plugin-nfs-migration

github.com/redhat-developer开发1950 次安装1 天前更新
代码仓库

关于 rhdh-plugin-nfs-migration

rhdh-plugin-nfs-migration 是帮助开发者将前端插件从旧版前端系统迁移到 NFS 的技能。它先盘点插件扩展,再逐类迁移,同时保留旧版导出,除非用户明确批准破坏性变更。

主要功能

  1. 01盘点插件扩展与导出
  2. 02逐类迁移到 NFS Blueprint
  3. 03保留旧版消费者兼容
  4. 04按扩展类型查阅迁移指引
  5. 05通过工作区 TypeScript 检查

适用场景

  1. 01迁移页面、实体内容或 API 工厂
  2. 02迁移翻译及 RHDH 扩展
  3. 03检查迁移后的类型与消费者兼容性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/redhat-developer/rhdh-skills --skill rhdh-plugin-nfs-migration

安装后在 Claude Code 中输入/rhdh-plugin-nfs-migration确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
app-setup.md
gotchas.md
migrate-app-level.md
migrate-entity-content.md
migrate-page.md
migrate-rhdh-extensions.md
migrate-translations.md
mount-point-mapping.md
operator-config.md
overview.md
package-json.md
reference-prs.md
support.md
testing-rhdh.md
verification.md
workflows/
migrate-nfs.md
test-nfs-plugin.md

详细介绍

RHDH 插件 NFS 迁移

负责管理前端插件从旧版前端系统迁移到 NFS 时的扩展结构。修改前先了解插件导出了什么内容,逐次迁移一种扩展类型,并确保旧版使用方仍能通过编译,直到用户明确批准破坏性变更。

从这里开始

  1. 阅读插件的 package.json、src/plugin.ts 或 src/plugin.tsx、路由引用、API 工厂、导出的组件以及 app-config.dynamic.yaml。
  2. 阅读工作区自己的 AGENTS.md 或 CLAUDE.md;仓库规则优先于此处的任何内容。
  3. 编辑前,向用户列出发现的所有扩展。
  4. 修改文件前检查分支和状态,并保护未提交的工作。

按目标选择路径

目标加载并遵循
将插件迁移到 NFSworkflows/migrate-nfs.md
在 RHDH 中测试迁移后的插件workflows/test-nfs-plugin.md
在迁移前了解 NFSreferences/overview.md
迁移页面或 API 工厂references/migrate-page.md
迁移实体标签页或卡片references/migrate-entity-content.md
迁移翻译references/migrate-translations.md
迁移 RHDH 抽屉、页眉项、主页小组件references/migrate-rhdh-extensions.md
迁移应用级封装或根元素references/migrate-app-level.md
将旧版动态挂载点转换为扩展references/mount-point-mapping.md
更新包导出references/package-json.md
设置或更新 NFS 开发应用references/app-setup.md
验证迁移references/verification.md
访问 RHDH operator 的 app.extensions 或 app.routes.bindingsreferences/operator-config.md
排查迁移失败先查看 references/gotchas.md,再查看 references/support.md
查找可供参考的真实迁移插件references/reference-prs.md

范围

  • 此技能负责扩展结构:哪个 Blueprint 替换哪个旧版扩展、扩展的挂载位置,以及包导出内容。它不负责选择 @backstage/* 版本号。
  • /rhdh-backstage-upgrade 负责版本号:要升级到哪个 Backstage 版本,以及如何升级到对应的依赖集。当插件的 @backstage/* 依赖版本过旧,不足以支持此次迁移所需的 Blueprints 时,先按名称调用此技能,再返回此处。
  • /backstage-api-changes 负责早期 alpha 版与当前 GA 版 NFS API 之间的差异,包括已移除的 NavItemBlueprint、替代 config.schema 的 configSchema,以及重命名的 Blueprint 参数。迁移已基于旧版 NFS API 完成迁移的插件,或 Blueprint 参数导致 TypeScript 错误时,按名称调用此技能。
  • /rhdh-plugin-export 负责导出和打包迁移后的插件。
  • /rhdh-plugin-wiring 负责生成 dynamic-plugins.yaml 配置。
  • /rhdh-local 负责运行本地 RHDH 实例并向其应用插件配置。
  • /rhdh-pr-create 负责暂存、提交和拉取请求。完成时请让修改过的文件保持未暂存状态,并列出这些文件。

调用指定名称的技能,并在对话中说明交接内容。切勿打开其他技能的文件。

不变量

  • NFS 尚未正式发布。默认采用 alpha 方案:NFS 位于 ./alpha,根导出保持原样。只有当用户希望通过同一个导入路径使用两种 API 时,才采用并置方案。
  • 组件级导入(useApi、useRouteRef)保留在 @backstage/core-plugin-api,这样同一组件就能用于两种导出路径。只有当组件需要 NFS 未提供的旧版上下文提供程序时,才使用 compatWrapper()。
  • 核心蓝图来自 @backstage/frontend-plugin-api。仅适用于 RHDH 的蓝图(例如 AppDrawerContentBlueprint 和 GlobalHeaderMenuItemBlueprint)来自 @red-hat-developer-hub/*。不要混用这两个命名空间。
  • 将实体内容和卡片直接放入插件的 extensions 数组。仅在需要定位到其他插件时才使用 createFrontendModule——例如将翻译定位到 pluginId: 'app',或将主页小组件定位到 pluginId: 'home'。
  • 旧版导出仍然可用。对旧版使用方造成破坏性变更前,必须征得用户明确同意。
  • 在工作区根目录运行 yarn tsc,而不是在插件目录中运行,以便发现使用方导入遭到破坏的问题。
  • 不要在此处暂存、提交、推送或创建拉取请求。

完成

报告发现的扩展及其对应的 NFS 等效项、所选导出方案、已修改且仍未暂存的文件、运行的验证命令及其结果、任何旧版使用方风险,以及接下来应调用以进行导出、接线、本地测试或发布的具名技能。

评论

支持 Markdown