SuperAPI AI 工具集

codemod-react-pipeline

编程与开发

查看项目

更新于 10-16 03:46

技能介绍

用途:在大型 React/TSX/JS 遗留代码库中安全、可重复地批量应用 codemod(组件或属性重命名、废弃 API、import 替换、hook 迁移等),从几十个文件到十万文件级别。核心是把改动拆成内环(单文件试验)与外环(分批应用),所有大规模变更都必须先经过 dry-run 和校验门禁。

流程:00 计划(捕获目标、判定转换类型、估算影响范围)→ 01 脚手架(从模板生成 transform、fixture、workflow)→ 02 内环(fixture 测试与单文件试跑,自动回滚)→ 03 试运行(预览变更、生成 findings 报告与 sentinel)→ 04 校验(幂等性、类型检查、lint、格式、测试)→ 05 分批应用(可恢复,逐批校验并提交)→ 06 最终断言。

主要脚本:scripts/00-plan.sh "<goal>" [name]、scripts/01-scaffold.sh <name> [--rule]、scripts/02-inner-loop.sh <name> [--watch|--file P|-u]、scripts/03-dry-run.sh <name> [--sample N]、scripts/04-validate-findings.sh <name>、scripts/05-run-batched.sh <name> [--batch-size N|--dry]、scripts/verify.sh <name>、scripts/selftest.sh。

用法:在目标仓库根目录依次运行上述脚本,编辑 config.json 配置 src_globs、language、typecheck_cmd、lint_cmd、format_cmd、test_cmd、batch_size、gates,并将 state_dir(默认 .codemod-pipeline)加入 .gitignore。要求 Codemod CLI(npm i -g codemod,或回退 npx codemod)、git 干净工作区、jq,以及项目自身门禁工具。PreToolUse 钩子会阻止缺少 --dry-run 且无 sentinel 的大范围 jssg run。

限制与注意:不适用于单文件修改或可在单个 PR 手动完成的改动;需从一开始就设计幂等;排除生成或 vendored 目录;workflow commit 检查点为云端专用,本流水线改为本地提交;任何失败都会还原工作区且不提交。