SuperAPI AI 工具集

add-private-feature-flag

编程与开发

查看项目

更新于 10-16 06:08

技能介绍

用途

该技能用于在 Ghost 代码库中新增一个私有功能开关(private feature flag),即面向开发者实验的开关。根据资料说明,私有开关会出现在 Labs 设置的“Private features”标签页中,且只有在启用开发者实验时才会显示。技能适用场景为需要向 Ghost 添加此类开关的开发任务,并同时覆盖后端注册与设置界面切换项(UI toggle)的配置。

主要能力与内容

技能围绕添加私有开关的完整流程展开,资料中列出的核心步骤包括:

  1. 在 ghost/core/shared/labs.js 中注册开关,将开关名称(camelCase 字符串)加入 PRIVATE_FEATURES 数组。
  2. 在 apps/admin/src/settings/advanced/labs/private-features.tsx 中添加 UI 切换项,在 features 数组中新增一个条目,包含 title、description 和 flag,其中 flag 必须与 labs.js 中的字符串一致。
  3. 运行测试并更新配置 API 快照。资料给出的命令为:
    • 单元测试:cd ghost && pnpm test:single test/unit/shared/labs.test.js
    • 更新快照:cd ghost && pnpm test:single test/e2e-api/admin/config.test.js -u && pnpm test:single test/e2e-api/admin/settings.test.js -u
    • 并要求检查两个快照的差异,确认只新增了自己的开关。

技能还提示:添加开关前应阅读并遵循官方的功能开关指南(canonical feature flag guide),该指南涵盖 Labs 开关何时适用、服务端与 Admin 之间的安全门控、测试以及清理生命周期。对于 Admin 7 里程碑开关,还应结合 Admin 7 feature flags 技能获取命名与共享呈现方面的指导。

使用方式

按照上述步骤在对应文件中注册开关名称、添加 UI 切换项,保持名称三处一致(labs.js、private-features.tsx 与快照),然后运行单元测试与快照更新命令,并人工检查快照差异。

适用场景与限制

适用场景为向 Ghost 添加私有功能开关的开发工作,尤其是需要同时处理后端注册与 Admin 设置界面显示的情形。资料明确说明:不需要数据库迁移,Labs 开关存储在单个 JSON labs 设置中;开关名称在 labs.js、private-features.tsx 和快照中必须完全一致;开关为 camelCase 字符串(例如 welcomeEmailDesignCustomization)。若为公开测试版开关(对所有用户可见),应将开关加入 labs.js 中的 PUBLIC_BETA_FEATURES,并将切换项添加到 apps/admin/src/settings/advanced/labs/beta-features.tsx。资料的各项步骤与说明已如上呈现,其余细节暂未提供。