Code Formatierung und Linting
Biome übernimmt das Code Formatting und Linting in diesem Projekt.
Biome ist in das Root-Package des Projektes integriert und wird in der biome.json
konfiguriert. Als Startpunkt nutzt Biome das Pre-Config Package Ultracite. In der biome.json
sind ebenfalls einige Ordner und Dateien definiert, die von Biome ignoriert werden. Insbesondere sind dies automatisch und ebenfalls von Git ignorierte automatisch generierte Ordner und Dateien und Ordner, die beim Build-Prozess automatisch erstellt werden.
CLI Commands
Ultracite CLI
pnpm ultracite lint
führt den Biome Linter aus, ohne das Formatierungen angewendet werden. Stattdessen wird gewarnt, dass Formatierungen falsch sind. Hinter diesem Command steckt die Anweisungnpx biome check ./
.pnpm ultracite format
führt den Biome Linter aus und wendet empfohlene Formatierungen auf die Dateien an. Hinter diesem Command steckt die Anweisungnpx biome check --write ./
.
Biome CLI
Die Biome CLI bietet viele weitere Möglichkeiten Code zu testen und zu berichtigen.
biome rage
zeigt Informationen zum Debugging.biome rage --formatter
zeigt die angewendeten Formatter Optionen,biome rage --linter
zeigt die angewendeten Linter-Optionen.biome check
führt den Biome Formatter und Linter aus und prüft die Import-Sortierung. Es werden keine Änderungen an den Dateien vorgenommen.--write
ändert die Dateien so, dass sichere Fixes, vorgeschlages Formatting und Import-Sortierungen angewendet werden.--fix
ist ein Alias für--write
--unsafe
wendet in Kombination mit--write
oder--fix
auch unsichere Fixes an. Diese könnten dazu führen, dass der Code nicht mehr funktioniert.--formatter-enabled=<true|false>
kontrolliert, ob der Formatter Check ausgeführt wird oder nicht.--linter-enabled=<true|false>
kontrolliert, ob der Lint Check ausgeführt wird oder nicht.--organize-imports-enabled=<true|false>
kontrolliert, ob Imports sortiert werden sollen, oder nicht.--assists-enabled=<true|false>
aktiviert oder deaktiviert die Assists.--changed
lintet nur die Dateien, die im Vergleich zumdefaultBranch
verändert wurden.
biome ci
führt Formatter Linter und Import-Sortierung aus. Dieser Command funktioniert wie der Commandbiome check
ist aber speziell für die Verwendung im CI-Umfeld optimiert.--formatter-enabled=<true|false>
kontrolliert, ob der Formatter Check ausgeführt wird oder nicht.--linter-enabled=<true|false>
kontrolliert, ob der Lint Check ausgeführt wird oder nicht.--organize-imports-enabled=<true|false>
kontrolliert, ob Imports sortiert werden sollen, oder nicht.--assists-enabled=<true|false>
aktiviert oder deaktiviert die Assists.--changed
lintet nur die Dateien, die im Vergleich zumdefaultBranch
verändert wurden.
Anwendung in diesem Projekt
Im Root-Package des Projektes sind mehrere Commands definiert, um die Biome CLI.
pnpm lint:root
führt den Commandultracite lint
in allen Teilen des Projektes aus. Es werden das Root-Verzeichnis sowie alle Unterordner incl.apps/
undpackages/
geprüft. Eine Formatierung wird nicht vorgenommen. Da dieser Command auch als Turbo Task definiert ist, istpnpm turbo lint:root
gleichbedeutend.pnpm lint
führt den Commandturbo lint
aus. Dieser Command stößt den Tubo-Tasklint
an.pnpm turbo lint
ist gleichbedeutend.pnpm format:root
führt den Commandultracite format
in allen Teilen des Projektes aus. Es werden das Root-Verzeichnis sowie alle Unterordner incl.apps/
undpackages/
geprüft. Formatierungen werden ggf. angepasst. Da dieser Command auch als Turbo Task definiert ist, istpnpm turbo format:root
gleichbedeutend.pnpm format
führt den Commandturbo format
aus. Dieser Command stößt den Tubo-Taskformat
an.pnpm turbo format
ist gleichbedeutend.pnpm lint:ci
ist ein Command speziell für den Turborepo CI Workflow undpnpm localci
. Hier wirdbiome ci ./
ausgeführt, was gleichbedeutend mitpnpm lint
aber für den Einsatz in CI-Workflows optimiert ist.
Turbo Tasks
pnpm turbo lint
führt das Scriptlint
in allen Apps und Packages aus, in denen ein solches Script definiert ist. In allenpackage.json
sollte daher ein Script definiert sein, dass hinter dem Scriptlint
den Commandultracite lint
ausführt.pnpm turbo format
führt das Scriptformat
in allen Apps und Packages aus, in denen ein solches Script definiert ist. In allenpackage.json
sollte daher ein Script definiert sein, dass hinter dem Scriptformat
den Commandultracite format
ausführt.
Die Commands pnpm lint:root
und pnpm format:root
wenden den Biome Linter und Formatter auf alle Dateien des Packages an.
pnpm lint
und pnpm format
greifen auf die selbe Config-Datei zu und führen den selben Command in den Apps und Packages des Projektes aus.
pnpm lint
und pnpm format
sind dafür gedacht, die Ausführung des Biome Linters und Formatters mit dem --filter
Flag nur auf einzelne Apps und Packages anzuwenden.
Sollen alle Teile des Projektes geprüft werden, sollten pnpm lint:root
oder pnpm format:root
ausgeführt werden.
Keinesfalls sollten pnpm format
und pnpm format:root
sowie pnpm lint
und pnpm lint:root
kombiniert werden, da dann beide Commands die selbe Arbeit erledigen.