Code Formatting

Prettier

Prettier ist der meinungsstarke Code-Formatter, der Stil-Debatten beendet. Er parst Ihren Code und schreibt ihn konsistent neu, sodass niemand mehr über Abstände, Anführungszeichen oder Semikolons streitet.

beginner12 min readUpdated 15. Sept. 2026
.prettierrc
json
// .prettierrc
{
  "semi": true,
  "singleQuote": false,
  "trailingComma": "all",
  "printWidth": 100,
  "arrowParens": "always"
}
Was es ist
Ein meinungsstarker Formatter
Ansatz
Parsen und neu schreiben
Konfig
Wenige Optionen
Sprachen
JS, TS, CSS, HTML, JSON, MD
CI
--check schlägt bei Diff fehl
Editoren
Format on save

Warum es wichtig ist

Warum Prettier Diskussionen beendet

Ein konsistenter Stil

Jede Datei sieht gleich aus, unabhängig davon, wer sie geschrieben hat, was Diffs kleiner und Reviews schneller macht.

Keine Stil-Debatten

Der Formatter entscheidet. Teams verschwenden keine Review-Zeit mehr für Abstände, Anführungszeichen und Zeilenumbrüche.

Überall einsetzbar

Formatieren Sie über die CLI, beim Speichern im Editor, in einem Pre-Commit-Hook oder als Check in der CI.

Das Gesamtbild

Die drei Grundideen hinter Prettier

Ein Parser, ein deterministischer Printer und ein kleiner Satz an Optionen. Die Formatierung wird einmal festgelegt und überall angewendet.

Der Parser

Lesen

Versteht die Syntax jeder unterstützten Sprache und erstellt einen Syntax-Baum.

Der Printer

Formatieren

Schreibt den Baum mit einem deterministischen Layout neu und ignoriert dabei Ihre ursprünglichen Leerzeichen.

Die Konfig

Optionen

Eine Handvoll Optionen und Ignore-Dateien steuern die wenigen Entscheidungen, die Ihnen bleiben.

Prettier auf einen Blick

Der Kern von Prettier

.prettierrc

Eine kleine Konfigurationsdatei für die Optionen, die Sie tatsächlich ändern möchten.

prettier --write

Dateien direkt über die Kommandozeile formatieren.

prettier --check

Schlägt fehl, wenn eine Datei nicht formatiert ist – ideal für die CI.

Editor-Integration

Format on save, damit Dateien während der Arbeit immer formatiert bleiben.

eslint-config-prettier

Deaktiviert ESLint-Regeln, die mit Prettier kollidieren würden.

.prettierignore

Build-Output, generierte Dateien und Abhängigkeiten überspringen.

Eine kurze Geschichte

Der Formatter, der den Stil zu einem gelösten Problem machte

  1. 2017

    Prettier veröffentlicht

    James Long stellt einen meinungsstarken Formatter vor, der Code aus seinem AST neu schreibt.

    17
  2. 2018

    Mainstream-Adoption

    Prettier wird zum Standard in JavaScript, TypeScript, CSS und Markdown-Projekten.

    18
  3. 2020

    Prettier 2

    Neue Defaults sowie besserer TypeScript- und JSX-Support.

    20
  4. 2023

    Prettier 3

    ESM-first, asynchrone Plugins und verbesserte Performance.

    23
  5. Heute

    Der Formatierungs-Standard

    Wird von den meisten Teams genutzt und ist in viele Framework-Scaffolds integriert.

    Heute

Der vollständige Leitfaden

Prettier: Alles was Sie wissen müssen

Was ist Prettier?

Prettier ist ein meinungsstarker (opinionated) Code-Formatter. Er analysiert deinen Code und überführt ihn in einen Syntax-Baum, um ihn anschließend mit einem deterministischen Layout neu zu schreiben, wobei die von dir gesetzten Leerzeichen ignoriert werden. Das Ergebnis hängt ausschließlich von der Struktur des Codes und einer kleinen Anzahl an Optionen ab, sodass derselbe Input immer denselben Output erzeugt.

Genau dieser Determinismus ist der entscheidende Punkt. Diskussionen über den Coding-Style verschwinden, da der Formatter entscheidet und nicht das Team. Diffs reduzieren sich auf tatsächliche Änderungen anstatt auf unnötige Anpassungen von Abständen, sodass Reviewer ihre Zeit für Logik und Design nutzen können. Prettier ist eines der wenigen Tools, die die Reibungsverluste in einer Codebase messbar reduzieren.

Konfiguration

Prettier funktioniert auch ohne Konfiguration, aber Sie können einige Optionen in .prettierrc festlegen.

{
  "semi": true,
  "singleQuote": false,
  "trailingComma": "all",
  "printWidth": 100,
  "tabWidth": 2,
  "arrowParens": "always"
}

Dies sind die Optionen, die die meisten Teams anpassen. Darüber hinaus trifft Prettier die Entscheidungen. Je weniger Optionen Sie festlegen, desto konsistenter ist das Ergebnis über verschiedene Projekte hinweg und desto geringer ist der Wartungsaufwand.

Prettier ausführen

Dateien direkt formatieren oder prüfen, ohne Änderungen zu schreiben.

npx prettier --write .
npx prettier --check .
npx prettier --write src/app.tsx

--write formatiert die Dateien neu und speichert sie; --check meldet Dateien, die geändert würden, und beendet den Prozess mit einem Nicht-Null-Exit-Code – genau das, was für die CI benötigt wird. Füge ein Script hinzu, damit die Befehle konsistent bleiben.

{
  "scripts": {
    "format": "prettier --write .",
    "format:check": "prettier --check ."
  }
}

Dateien ignorieren

.prettierignore listet Pfade auf, die übersprungen werden sollen, wobei die gleiche Syntax wie in .gitignore verwendet wird.

dist
coverage
pnpm-lock.yaml
*.generated.ts

Es ist wichtig, Build-Outputs und generierte Dateien zu ignorieren: Die Formatierung dieser Dateien erzeugt unnötiges Rauschen, das beim nächsten Build wieder überschrieben wird, und kann sogar die Codegenerierung beeinträchtigen, wenn diese ein bestimmtes Layout erwartet.

Editor-Integration

Installiere die Prettier-Extension für deinen Editor und aktiviere „Format on Save“. Hier spielt Prettier seine größte Stärke aus: Du musst dir nie wieder Gedanken über die Formatierung machen, und jeder Speichervorgang hinterlässt eine saubere Datei. Das bedeutet auch, dass du --check mit gutem Gefühl in der CI einsetzen kannst, da die Formatierung kontinuierlich erfolgt und nicht erst in einem großen Aufräumprozess am Ende.

Arbeiten mit ESLint

Prettier und ESLint überschneiden sich bei den Style-Regeln, und wenn man sie einfach so lässt, kommen sie in Konflikt. Die Standardlösung besteht darin, Prettier die Formatierung zu überlassen und die widersprüchlichen ESLint-Regeln zu deaktivieren.

// eslint.config.js
import js from "@eslint/js";
import prettier from "eslint-config-prettier";

export default [js.configs.recommended, prettier];

eslint-config-prettier schaltet jede ESLint-Regel aus, die mit Prettier kollidieren würde, sodass sich ESLint auf die Code-Qualität und Prettier auf das Layout konzentriert. Wenn Formatierungsprobleme als Lint-Fehler angezeigt werden sollen, führt eslint-plugin-prettier Prettier als Regel aus, obwohl viele Teams es bevorzugen, die beiden getrennt zu halten.

Pre-commit hooks

Die Formatierung vor einem Commit sorgt dafür, dass die CI grün bleibt und die History sauber ist.

{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,css,md}": "prettier --write"
  }
}

In Kombination mit einem Hook-Runner wie husky werden so nur die gestagten Dateien formatiert, sodass die Commits schnell bleiben. Dieser geringe Setup-Aufwand verhindert eine ganze Kategorie von Review-Kommentaren bezüglich „unformatiertem Code“.

Wo Prettier ins Spiel kommt

Prettier ist ausschließlich für das Formatting zuständig. Es findet keine Bugs, erzwingt keine Typen und prüft keine Imports – das sind Aufgaben von ESLint und dem Type Checker. Eine solide Toolchain nutzt alle drei: Prettier für das Layout, ESLint für die Qualität und TypeScript für die Typen. Jedes Tool hat eine spezifische Aufgabe, und sie stehen nicht im Konflikt zueinander.

Best Practices

  • Akzeptieren Sie die Standardwerte, es sei denn, Ihr Team hat einen triftigen Grund, einen davon zu ändern.
  • Committen Sie eine .prettierrc, damit jeder Editor und jeder CI-Run konsistent bleiben.
  • Fügen Sie .prettierignore für Build-Outputs und generierte Dateien hinzu.
  • Nutzen Sie „Format on Save“ in Ihrem Editor.
  • Führen Sie --check in der CI und --write in einem Pre-Commit-Hook aus.
  • Deaktivieren Sie widersprüchliche ESLint-Regeln mit eslint-config-prettier.
  • Halten Sie die Liste der Optionen kurz.

Häufige Fehler

  • ESLint und Prettier gleichzeitig formatieren lassen, was zu Konflikten führt.
  • Generierte Dateien formatieren und dadurch unnötig große Diffs erzeugen.
  • Den CI-Check überspringen, sodass unformatierter Code gemergt wird.
  • Optionen pro Projekt ohne Grund ändern und dadurch die Konsistenz zwischen Projekten verlieren.
  • Prettier in einem pre-commit hook über das gesamte Repo laufen lassen und so Commits verlangsamen.
  • Prettier nutzen, um semantische Regeln zu erzwingen, die eigentlich in ESLint gehören.

Wie geht es weiter?

Prettier nimmt euch eine ganze Kategorie von mühsamer Routinearbeit ab. Kombiniert es mit ESLint für die Code-Qualität, TypeScript für Typsicherheit und bindet beides in euer Vite-Projekt sowie in die CI ein. Richtet anschließend „Format on Save“ ein und ihr müsst euch nie wieder Gedanken über Abstände machen.

Aufteilung der Verantwortlichkeiten

Überlassen Sie die Formatierung Prettier und das Finden von Bugs ESLint. Das Deaktivieren der stilistischen Regeln von ESLint verhindert, dass zwei Tools um denselben Code kämpfen.

Bevorzugt
// eslint.config.js
import prettier from
  "eslint-config-prettier";

export default [
  js.configs.recommended,
  prettier,
];
Vermeiden
// ESLint stylistic rules and
// Prettier both rewrite the
// same lines and disagree

Formatierung erzwingen

Prüfen Sie die Formatierung in der CI, damit nicht formatierter Code nicht gemergt werden kann. Ein Pre-Commit-Hook fängt dies noch früher ab.

Bevorzugt
# CI
npx prettier --check .

# before commit
npx prettier --write .
Vermeiden
# no check at all, so
# formatting drifts and
# diffs fill with noise

Häufig gestellte Fragen

Häufig gestellte Fragen

Keep learning

Related topics from the roadmap.

$ Lernen Sie jetzt

Bereit, Prettier zu lernen?

Unser interaktives Tutorial führt Sie Schritt für Schritt durch Prettier — mit Quizzen und echtem Code, den Sie im Browser ausführen können.