SuperAPI AI 工具集

nfs-migration

编程与开发

查看项目

更新于 10-16 10:06

技能介绍

用途

nfs-migration 用于将 Backstage 前端插件从旧系统迁移到新前端系统(New Frontend System,NFS)。当用户需要“迁移到 NFS”“使用新前端系统”“转换插件”时使用。

主要能力

  • 引导用户选择任务:迁移插件、测试已迁移插件、了解 NFS 迁移。
  • 发现现有插件结构,包括插件 ID、路由与路由引用、API 工厂、可路由扩展(页面)、组件扩展(实体卡片、标签页)、侧边栏/导航项、翻译、RHDH 特定扩展(抽屉、头部项、主页小组件)、RHDH 动态插件挂载点。
  • 支持两种迁移方案:Alpha 方案(默认,NFS 置于 ./alpha,旧代码保留在根目录)和 Colocated 方案(NFS 作为 index.ts 默认导出,旧源码置于 legacy.ts 但经 index.ts 重导出以保持兼容)。
  • 按扩展类型加载对应参考:页面与 API 工厂、实体内容、翻译、RHDH 扩展、应用级包装器等。
  • 更新 package.json 导出配置,设置 NFS 开发应用,并验证消费者导入是否正常。
  • 提供验证检查,包括运行 yarn tsc 和 yarn build。
  • 包含测试已迁移插件的参考(本地或集群 RHDH 实例)。

使用方式

技能以交互方式启动,询问用户想做什么,等待响应后按以下动作分支:

  • 输入“1”“migrate”“convert”“NFS”:执行迁移工作流。
  • 输入“2”“test”“verify”“deploy”:阅读 workflows/test-nfs-plugin.md。
  • 输入“3”“learn”“guide”“overview”:阅读 references/overview.md 并向用户展示关键部分。

迁移工作流包括六个步骤:

  1. 发现:读取 package.json 和 src/plugin.ts(或 .tsx),识别插件 ID、路由、API 工厂、扩展等,列出发现结果;若 @backstage/* 依赖过时,先使用 backstage-upgrade 技能升级。
  2. 选择方案:默认 Alpha,或按需选择 Colocated。
  3. 迁移扩展:根据扩展类型加载对应参考并应用模式。
  4. 更新 package.json:加载 references/package-json.md,按所选方案配置导出。
  5. 更新应用装配:加载 references/app-setup.md,添加 NFS 开发应用(dev/index.tsx 或 dev/nfs.tsx),保持旧开发应用可用,验证消费者导入。
  6. 验证:加载 references/verification.md 运行所有检查,从工作区根目录运行 yarn tsc。

适用场景

  • 需要将 Backstage 前端插件迁移到 NFS 的开发者。
  • 需要测试已迁移插件在 RHDH 本地或集群实例中的表现。
  • 希望先了解 NFS 迁移指南再动手的用户。
  • 插件包含页面、API 工厂、实体内容、翻译、RHDH 扩展、动态插件挂载点、应用级包装器等。

限制

  • NFS 尚未 GA,默认使用 Alpha 方案。
  • 未提供关于收费、价格、平台支持范围、具体效果保证等事实信息。
  • 成功标准包括:./alpha(或根目录)默认导出 createFrontendPlugin 结果;所有旧扩展有 NFS Blueprint 等价物;需要导航条目的页面设置 title 和 icon;package.json 正确导出 NFS;翻译位于 pluginId: 'app' 的 createFrontendModule;实体内容扩展在插件 extensions 数组中;yarn tsc 和 yarn build 通过;旧导出仍可用。