返回全部 Skills

compiler-verify

开发工具

当需要在提交前运行所有编译器检查(测试、lint、格式化)时使用。检测是TS还是Rust代码发生了更改,并运行相应的检查。

2

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

在项目根目录执行以下命令,完成 Skill 安装。

npx bzskills add facebook/react --skill compiler-verify

skill.md

name: compiler-verify
description: 当需要在提交前运行所有编译器检查(测试、lint、格式化)时使用。检测是TS还是Rust代码发生了更改,并运行相应的检查。

编译器验证

对编译器更改运行所有验证步骤。

参数:

  • $ARGUMENTS:用于 yarn snap -p <pattern> 的可选测试模式

说明

  1. 检测更改内容:运行 git diff --name-only HEAD(或与基础分支比较)。

对更改进行分类:

  • TS 更改compiler/packages/ 中的文件
  • Rust 更改compiler/crates/ 中的文件
  • 两者都有:运行所有检查
  1. 如果 TS 有更改,按顺序运行以下命令(失败则停止):
  • yarn snap(如果提供了模式,则运行 yarn snap -p <pattern>)—— 编译器测试
  • yarn test —— 测试完整编译器
  • yarn workspace babel-plugin-react-compiler lint —— 检查编译器源代码的 lint
  1. 如果 Rust 有更改,按顺序运行以下命令(失败则停止):
  • bash compiler/scripts/test-babel-ast.sh —— Babel AST 往返测试
  • bash compiler/scripts/test-rust-port.sh —— 完整的 Rust 端口测试套件(比较 Rust 与 TS 编译器在所有 pass 上的输出;必须 0 失败 —— 不允许退化)
  • yarn snap --rust —— 使用 Rust 编译器的端到端快照测试(将编译输出和日志事件与 .expect.md 夹具进行比较;可使用 yarn snap --rust -p <pattern> 进行针对性检查)
  1. 始终运行(在仓库根目录下执行):
  • yarn prettier-all —— 格式化所有更改的文件
  1. 如果正在实施计划文档,检查:
  • 计划文档中没有未处理的“剩余工作”项
  • 计划文档的状态已更新以反映当前状态
  1. 报告结果:将每个步骤标记为通过/失败。如果失败,停止并显示错误及建议的修复方案。

常见错误

  • 运行 yarn snap 时不加 -p 对于完整验证没问题,但速度较慢。可使用 -p 进行针对性检查。
  • 在 compiler/ 目录下运行 prettier —— 必须从仓库根目录运行。
  • 忘记 Rust 测试 —— 如果修改了 .rs 文件,始终运行往返测试和 yarn snap --rust