用途
该技能用于在 Ghost 代码库中新增一个私有功能开关(private feature flag),即面向开发者实验的开关。根据资料说明,私有开关会出现在 Labs 设置的“Private features”标签页中,且只有在启用开发者实验时才会显示。技能适用场景为需要向 Ghost 添加此类开关的开发任务,并同时覆盖后端注册与设置界面切换项(UI toggle)的配置。
主要能力与内容
技能围绕添加私有开关的完整流程展开,资料中列出的核心步骤包括:
- 在
ghost/core/shared/labs.js中注册开关,将开关名称(camelCase 字符串)加入PRIVATE_FEATURES数组。 - 在
apps/admin/src/settings/advanced/labs/private-features.tsx中添加 UI 切换项,在 features 数组中新增一个条目,包含 title、description 和 flag,其中 flag 必须与 labs.js 中的字符串一致。 - 运行测试并更新配置 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。资料的各项步骤与说明已如上呈现,其余细节暂未提供。