用 AI Agent 写 React 的人越来越多。Agent 写代码的速度确实快,但质量参差不齐——多余的 useEffect、泄漏的 subscription、过度渲染、不必要的 re-render、不该用 state 的地方用了 state。
React Doctor 就是来给这些代码看病的。
百万级 star 项目 million 的团队(对,就是做 React 虚拟 DOM 优化那个)新出的工具。本周 GitHub Trending 上 2,643 星。
怎么用
npx react-doctor@latest
一条命令,扫描整个代码库,输出一个 0-100 的健康分:
- 75+:Great
- 50-74:Needs work
- < 50:Critical
同时列出具体的问题清单,覆盖五个维度:状态与副作用、性能、架构、安全、无障碍。规则会根据你的框架(Next.js / Vite / React Native)和 React 版本自动调整。
更狠的一招:教 Agent 别再写烂代码
光扫描不够。React Doctor 还提供了一条命令,直接把你的 coding agent「教育」一下:
npx react-doctor@latest install
它会自动检测你项目里装了哪些 Agent(Claude Code、Cursor、Codex、OpenCode……50+ 种),然后把 React 最佳实践以 SKILL.md 的形式注入进去。Agent 下次写代码时,会遵循这些规则。
治标不如治本。与其每次扫完手动改,不如让 Agent 一开始就写对。
GitHub Actions 集成
可以加到 CI 里,每次 PR 自动检查:
name: React Doctor
on:
pull_request:
push:
branches: [main]
jobs:
react-doctor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: millionco/react-doctor@main
with:
diff: main
github-token: ${{ secrets.GITHUB_TOKEN }}
PR 评论里会自动贴健康分和具体发现。还可以设置 fail-on 阈值,低于某个分数直接 block merge。
规则覆盖范围
五个维度,每个维度下面有具体的规则:
- 状态与副作用:不必要的 useEffect、遗漏的 cleanup、错误的依赖数组
- 性能:多余的 memo/useMemo、大列表未虚拟化、不必要的重渲染
- 架构:组件职责不清、prop drilling 过度、状态管理混乱
- 安全:XSS 风险、不安全的 innerHTML 使用
- 无障碍:缺少 aria 属性、语义化 HTML 问题
规则不是死的。v0.2 移除了之前捆绑的 knip 死代码检测(作者的建议是:跑 npx knip 更合适),说明团队在聚焦核心能力。
百万级团队出品
这个项目来自 million 团队。million 本身就是一个专注 React 性能优化的项目,在 React 社区有相当的积累。React Doctor 延续了他们一贯的风格:聚焦具体问题,给出不啰嗦的解决方案。
我的看法
React Doctor 解决的是一个正在变大的问题:随着 AI 编程工具的普及,越来越多的 React 代码是由 Agent 生成的。Agent 能写出能跑的代码,但不一定能写出好的代码。React Doctor 像是给 Agent 生成的代码加了一层质量门禁。
不过要客观看待:健康分只是一个参考指标。75 分的代码不一定比 70 分的「好」,分数不能完全替代 code review。但对于快速定位问题区域、在 CI 里设置自动质量门槛,这个工具是够用的。
如果你团队里有人(或 Agent)在写 React 代码,装一下。扫描只需要几秒钟,成本几乎为零。
主要来源: