SuperAPI AI 工具集

feature-flags

通用与其它

查看项目

更新于 10-16 04:28

技能介绍

用途:该技能围绕 React 代码库中的功能开关(feature flags)与测试门控展开,帮助处理开关相关的测试失败、开关值更新、渠道差异调试,以及新增开关的流程。

主要能力:说明各开关文件的分布与用途,包括 packages/shared/ReactFeatureFlags.js(默认开关、canary、EXPERIMENTAL 覆盖)、packages/shared/forks/ReactFeatureFlags.www.js(www 渠道、VARIANT 覆盖)、packages/shared/forks/ReactFeatureFlags.native-fb.js(React Native、VARIANT 覆盖)以及 packages/shared/forks/ReactFeatureFlags.test-renderer.js(测试渲染器)。

测试门控用法:当功能在开关关闭时完全不可用时,使用测试级 @gate pragma,例如 // @gate enableViewTransition,此时测试在开关为 false 时被跳过而非失败;当功能存在但行为随开关变化时,使用断言级内联 gate(),在测试内用 if (gate(flags => flags.enableNewBehavior)) 区分新旧输出路径。

新增开关步骤:在 ReactFeatureFlags.js 中加入默认值;在每个 fork 文件(.www.js、.native-fb.js 等)中同步添加;如需在 www/RN 中变化,在 fork 文件里设为 VARIANT;用 @gate flagName 或内联 gate() 门控测试。

开关状态查看:使用 /flags 查看跨渠道状态;VARIANT 开关模拟 gatekeeper,需测试 true 与 false 两种取值,可用 /test www <pattern> 与 /test www variant false <pattern> 分别运行;调试渠道相关失败时,可用 /flags --diff <channel1> <channel2> 对比值,检查 @gate 条件,并用 /test <channel> <pattern> 隔离失败,新加开关需确认已存在于所有 fork 文件。

常见错误:遗漏两种变体(VARIANT 开关必须同时测 www 与 www variant false);行为差异误用 @gate(两条路径都应运行时用内联 gate());漏改 fork 文件;门控语法写错,应为 gate(flags => flags.name) 而非 gate('name')。

限制:资料未提供安装命令、版本要求、官方文档链接或完整命令参数说明。