SuperAPI AI 工具集

add-cli-option

编程与开发

查看项目

更新于 10-15 15:25

技能介绍

用途

该技能指导如何在 Remotion 中新增一个 CLI 或配置选项。它覆盖两种情形:把已有的硬编码 CLI 标志转换为规范的 AnyRemotionOption,或添加一个全新的选项。整个流程从选项定义开始,经过注册、CLI 解析、配置接入,最后到文档更新与构建验证。

主要能力

  • 创建选项定义文件,声明名称、cliFlag、id、描述、SSR 名称、文档链接和值类型。
  • 在选项索引中注册,使其可通过 BrowserSafeApis.options 访问。
  • 更新 CLI 解析标志与类型定义。
  • 在需要的位置通过 getValue 解析选项值,而非直接读取 parsedCli。
  • 将选项接入 Config,提供 setter 签名与实现。
  • 更新 CLI 命令页、API 页、配置文档,并使用 <Options id="..." /> 组件保持单一事实来源。
  • 生成选项参考文档并执行构建与校验命令。

使用方式

  1. 创建选项定义:在 packages/renderer/src/options/<name>.tsx 中定义 AnyRemotionOption,包含 name、cliFlag、id、description、ssrName、docLink、type、getValue、setConfig。id 必须唯一,仅含小写字母、数字和连字符,通常与 cliFlag 一致。对于取反标志(如 --disable-ask-ai 对应 askAIEnabled = false),在 getValue 中处理反转。

  2. 注册到选项索引:在 packages/renderer/src/options/index.tsx 中添加导入(按字母顺序)并加入 allOptions 对象。

  3. 更新 CLI 解析标志:在 packages/cli/src/parsed-cli.ts 中,布尔标志需加入 BooleanFlags 数组;非布尔标志无需在此添加。在 packages/cli/src/parse-command-line.ts 中,加入解构的 BrowserSafeApis.options,并在 CommandLineOptions 类型中添加对应字段。

  4. 在需要处使用选项:通过 myFlagOption.getValue({commandLine: parsedCli}).value 解析,而非直接读取 parsedCli。Studio 选项通常在 packages/cli/src/studio.ts,渲染选项在相关渲染命令文件中。若选项被 Studio 消费,需先完整阅读 ../studio-config-option-lifecycle/SKILL.md,将其分类为启动固定或可重载,不允许混合行为;若任一消费者需要启动固定行为,则向所有消费者传递启动快照。

  5. 添加到 Config:在 packages/cli/src/config/index.ts 中,加入解构的 BrowserSafeApis.options,在 FlatConfig 类型中添加 setter 签名,并在 Config 对象中实现,如 setMyFlagEnabled: myFlagOption.setConfig。

  6. 更新文档(必做):每个新选项都必须更新文档以使用 <Options id="..." />,使描述自动来自选项定义。CLI 命令页(cli/render.mdx、lambda/cli/render.mdx、cloudrun/cli/render.mdx、cli/benchmark.mdx)需添加或更新对应章节,使用 <Options id="my-flag" /> 作为描述主体,id 必须与选项 id 一致。CLI 帮助元数据需在 packages/cli/src/print-help.ts、packages/lambda/src/cli/help.ts 或 packages/cloudrun/src/cli/help.ts 中为各支持命令的选项列表添加该标志。API 页需为每个公开参数单独设标题。packages/docs/docs/config.mdx 需添加或更新对应 setter 章节,包含 <Options id="my-flag" />、twoslash 配置示例,以及指向 /docs/options/<id> 的链接并说明 CLI 标志优先。生成选项参考:使用下方命令生成 packages/docs/docs/options/<id>.mdx 和选项索引,应编辑选项定义与 API/配置文档而非生成的 MDX。选项页会自动加入侧边栏。

  7. 构建与验证:在仓库根目录执行 bun run build,然后进入 packages/docs 执行 bun run generate-option-docs、bun run render-cards、bun run check-option-docs。验证 /docs/options/<id> 包含描述、支持的命令及相关 API/配置链接。提交生成的页面与索引、文章目录(packages/docs/src/data/articles.ts)以及新的社交预览卡片。

适用场景

  • 需要为 Remotion CLI 添加新的命令行标志。
  • 需要将现有硬编码的 CLI 标志重构为规范的 AnyRemotionOption。
  • 需要新增可通过 Config 设置的选项,并保持文档自动同步。

限制

  • 选项 id 必须唯一,仅含小写字母、数字和连字符。
  • 若选项被 Studio 消费,必须遵循 studio-config-option-lifecycle 的启动固定或可重载分类,不允许混合行为。
  • 文档更新为强制步骤,不可跳过。
  • 应编辑选项定义与 API/配置文档,而非生成的 MDX 文件。
  • 具体构建命令与文件路径以资料所述为准,其他环境细节暂未提供。