C
ChaoBro

React Doctor:你的 Agent 写烂 React 代码,它来查——一行命令出健康分,支持 Next.js 和 React Native

React Doctor:你的 Agent 写烂 React 代码,它来查——一行命令出健康分,支持 Next.js 和 React Native

用 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 代码,装一下。扫描只需要几秒钟,成本几乎为零。

主要来源: