accounts/docs/ui/static-export/cloud_iac.md

1.3 KiB

Cloud IaC 静态化设计

页面范围

  • /cloud_iac
  • /cloud_iac/[provider]
  • /cloud_iac/[provider]/[service]

数据来源

  • dashboard/lib/iac/catalog.ts 提供所有 Provider 与服务分类。
  • public/_build/cloud_iac_index.json 在构建前由 scripts/export-slugs.ts 导出 Provider / Service 组合。

静态导出策略

  1. 在三个页面的模块顶端声明 export const dynamic = 'error',禁止运行时回退到动态渲染。
  2. /cloud_iac/[provider]/cloud_iac/[provider]/[service] 中实现 generateStaticParams(),从 cloud_iac_index.json 读取静态参数并导出 dynamicParams = false
  3. 使用 cloud_iac_index.jsoncatalog.ts 的静态常量渲染页面内容,避免请求数据库或外部 API。
  4. 将任何 generateMetadata 的逻辑提前到模块作用域,生成一次性常量 metadata

子任务拆分

  • 数据导出:在 scripts/export-slugs.ts 中读取 catalog.ts,生成 Provider 和 Service 对应的 JSON 列表。
  • 页面改造:为三个页面补充 dynamic = 'error' 与静态参数生成逻辑,更新到使用 JSON 数据。
  • 校验:在 scripts/check-build.js 中增加对 cloud_iac_index.json 的完整性检查,确保 Provider 与 Service 数量均大于 0。