Back

Scannen Sie Ihren React-Code auf Anti-Patterns mit React Doctor

Scannen Sie Ihren React-Code auf Anti-Patterns mit React Doctor

React-Anwendungen brechen selten auf einmal zusammen. Sie verschlechtern sich allmählich – hier ein unnötiger useEffect, dort ein paar zusätzliche Ebenen von Prop Drilling, ein Accessibility-Attribut, das stillschweigend fehlt. Bis diese Probleme in der Produktion auftauchen, ist ihre Behebung teuer.

React Doctor ist ein Open-Source-CLI-Tool, das entwickelt wurde, um diese Probleme zu erkennen, bevor sie sich häufen. Führen Sie einen Befehl aus, erhalten Sie einen Code-Health-Score von 0–100 und bekommen Sie umsetzbare Diagnosen für Ihre gesamte Codebasis.

Wichtigste Erkenntnisse

  • React Doctor ist ein statisches Analyse-CLI, das Ihre React-Codebasis anhand von über 60 Regeln in den Bereichen Architektur, Accessibility, Sicherheit, toter Code und Bundle-Größe mit 0–100 bewertet.
  • Es geht über ESLint hinaus, indem es Anti-Patterns und strukturelle Probleme wie unnötige useEffect-Verwendung, tiefes Prop-Passing, ineffiziente Imports und potenzielle Sicherheitsrisiken aufdeckt.
  • Es erkennt automatisch Ihr Framework und Ihre React-Konfiguration (einschließlich Umgebungen wie Next.js) und wendet die relevanten Regeln an.
  • Eine GitHub-Actions-Integration ermöglicht es Teams, nur geänderte Dateien pro PR zu scannen und Ergebnisse automatisch als Kommentare zu posten.

Was React Doctor tatsächlich leistet (und was nicht)

React Doctor ist ein statisches Analyse-Tool, kein Runtime-Profiler. Es misst keine Render-Zeiten und verfolgt keine Component-Re-Renders in einer laufenden App. Stattdessen liest es Ihren Quellcode und identifiziert strukturelle Probleme, bevor Sie die Anwendung überhaupt ausführen.

Diese Unterscheidung ist wichtig. Tools wie der React DevTools Profiler zeigen Ihnen, was zur Laufzeit langsam ist. React Doctor zeigt Ihnen warum Ihr Code strukturell fragil ist – Prop Drilling, das Refactoring schmerzhaft macht, Effects, die nicht existieren sollten, tote Exports, die Ihr Bundle aufblähen, und Accessibility-Verstöße, die echte Benutzer betreffen.

Es ist auch mehr als ein Linter. Tools wie ESLint fangen Syntax-Probleme ab und erzwingen Style-Regeln. React Doctor analysiert die umfassendere Projekt-Gesundheit, indem es Kategorien wie Architektur, Bundle-Größe, Sicherheit, toten Code und framework-spezifische Patterns scannt. Es erkennt Ihr Framework und Ihre React-Konfiguration automatisch und aktiviert dann die relevanten Regeln.

So scannen Sie Ihr React-Projekt in 30 Sekunden

Keine Installation erforderlich. Navigieren Sie zu Ihrem Projekt-Root und führen Sie aus:

npx -y react-doctor@latest .

Fügen Sie --verbose hinzu, um exakte Dateipfade und Zeilennummern für jedes Problem zu sehen:

npx -y react-doctor@latest . --verbose

React Doctor führt zwei parallele Durchläufe aus: einen Lint-Durchlauf über aktive Regeln und einen Dead-Code-Durchlauf, der ungenutzte Dateien, Exports, Typen und Duplikate markiert. Die Ergebnisse werden nach Schweregrad bewertet – Fehler wiegen schwerer als Warnungen – und ergeben einen finalen Health-Score: 75+ ist Sehr gut, 50–74 ist Verbesserungsbedürftig, unter 50 ist Kritisch.

Die React-Anti-Patterns, die es aufdeckt

Hier sind die Arten struktureller Probleme, die React Doctor häufig identifiziert:

Unnötige useEffect-Verwendung — Wenn State-Ableitungen innerhalb von Effects statt während des Renderns erfolgen, entstehen Bugs mit veralteten Daten und schwerer nachvollziehbare Logik. Reacts eigene Empfehlungen raten zunehmend dazu, Werte während des Renderns abzuleiten, wo möglich, anstatt sich auf Effects zu verlassen.

Tiefes Prop-Passing — Das Durchreichen von Props durch viele Component-Ebenen ist ein strukturelles Warnsignal. Die Lösung ist oft Context, Composition oder State-Co-Location.

List-Keys, die instabiles Rendering verursachen können — Die Verwendung instabiler Identifikatoren (wie Array-Indizes) kann zu subtilen UI-Bugs führen, wenn Listen neu geordnet werden.

Schwere Library-Imports — Das Importieren ganzer Bibliotheken kann Bundles aufblähen. React Doctor kann Patterns hervorheben, bei denen Code-Splitting über React.lazy() oder Framework-Tools wie next/dynamic helfen können.

Accessibility-Lücken — Fehlende Attribute wie alt bei Bildern oder andere Accessibility-Versäumnisse können während der Entwicklung unbemerkt bleiben, betreffen aber echte Benutzer.

Potenzielle Secrets im Quellcode — Statisches Scanning kann Patterns erkennen, die API-Keys oder Tokens ähneln, die in ein Repository committed wurden.

Integration von React Doctor in Ihren Team-Workflow

Für Teams ist die wertvollste Integration der GitHub Actions Workflow:

- uses: actions/checkout@v5
  with:
    fetch-depth: 0
- uses: millionco/react-doctor@main
  with:
    diff: main
    github-token: ${{ secrets.GITHUB_TOKEN }}

Die Option diff scannt nur Dateien, die in einem Pull Request geändert wurden, und hält die CI schnell. Wenn github-token bereitgestellt wird, werden die Ergebnisse direkt als PR-Kommentar gepostet – kein Durchsuchen von Logs erforderlich.

Für KI-gestützte Workflows können Sie Coding-Agenten wie Cursor oder Claude Code die React-Best-Practice-Regeln beibringen, die React Doctor verwendet:

curl -fsSL https://react.doctor/install-skill.sh | bash

Dies ermöglicht es Ihrem Agenten, Probleme zu diagnostizieren und Fixes unter Verwendung desselben Regelsets vorzuschlagen, das React Doctor anwendet.

Real-World Health-Scores

React Doctor wurde gegen mehrere bekannte Open-Source-React-Projekte ausgeführt:

ProjektScore
tldraw84
excalidraw84
twenty78
posthog72
cal.com63
dub62

Selbst reife, gut gewartete Projekte haben Verbesserungspotenzial. Diese Probleme häufen sich stillschweigend an, und automatisiertes Scanning ist eine der einfachsten Möglichkeiten, sie frühzeitig zu erkennen.

Fazit

React Doctor ersetzt kein Code-Review, aber es nimmt die mühsamen Teile davon ab. Strukturelle Probleme, Accessibility-Lücken, toter Code und Sicherheitsrisiken werden automatisch erkannt, sodass sich menschliche Reviewer auf Logik- und Design-Entscheidungen konzentrieren können.

Führen Sie es einmal auf Ihrem aktuellen Projekt aus. Der Score, den Sie zurückbekommen, wird Ihnen mehr über die Gesundheit Ihrer Codebasis verraten als eine Woche manueller Review.

FAQs

Ja. React Doctor unterstützt sowohl JavaScript- als auch TypeScript-Codebasen. Es parst TSX- und TS-Dateien neben JSX und JS, und seine Dead-Code-Erkennung kann auch ungenutzte Typen und Type-Exports einschließen. Für typische TypeScript-Projekte ist keine zusätzliche Konfiguration erforderlich.

ESLint mit React-Plugins konzentriert sich auf Syntax, Style und eine begrenzte Anzahl React-spezifischer Regeln. React Doctor analysiert die umfassendere Projekt-Gesundheit, indem es Kategorien wie Architektur, Bundle-Größe, Sicherheit, toten Code und Accessibility scannt und dabei Prüfungen basierend auf Ihrem Framework und Ihrer React-Konfiguration anpasst.

Ja. Die GitHub-Actions-Integration akzeptiert eine diff-Option, die das Scannen auf Dateien beschränkt, die in einem Pull Request geändert wurden. Dies hält CI-Pipelines schnell. In Kombination mit der github-token-Option werden Ergebnisse als PR-Kommentar gepostet, sodass eine einfache Überprüfung ohne Prüfung von Build-Logs möglich ist.

React Doctor kann bestimmte Frameworks wie Next.js erkennen und framework-spezifische Prüfungen anwenden. Es kann auch Patterns markieren, die in Umgebungen wie React Native problematisch sind, abhängig vom verwendeten Regelset.

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay