2026 Frontend-Pitfall-Checkliste:
Biome + TypeScript inkrementell auf Remote Mac
Release-Engineers auf gemieteten Mac-Runnern starten oft Biome und TypeScript nacheinander oder parallel — ohne gemeinsame Vereinbarung zu Caches, Threads oder CI/CD-Reihenfolge. Diese Checkliste vergleicht biome.json mit tsc --incremental, benennt realistische Cache-Pfade und ergänzt eine dreistufige Abnahme vor dem Tag. Ergänzend zur Monorepo-Remote-Cache-Checkliste und zum Leitfaden zu Vite- und Webpack-Caches bleiben Lint und Typprüfung schnell und deterministisch.
01 Schmerzpunkte auf geteilten Remote-Mac-Workern
Problem 1 — Thread-Sturm: Biome parallelisiert Dateiarbeit in einem Worker-Pool, während tsc typischerweise einen großen Einzelprozess-Graphen hält. Zusammen können sie Performance-Kerne überzeichnen und SSH-Sessions einfrieren. Problem 2 — vergiftete Caches: Nach Branch-Wechseln ohne Invalidierung von tsbuildinfo laufen Pipelines grün, lokal bricht der Build — ein klassisches Inkremental-Szenario 2026. Problem 3 — falsche Stufen-Reihenfolge: Wer teure Browser- oder E2E-Jobs vor billigen Lint- und Typ-Gates ausführt, verschwendet bei jedem Push Minuten auf einem Remote Mac, der ohnehin geteilt ist.
Die Pipeline sollte deshalb zuerst schnelle, deterministische Signale liefern und erst danach schwere Artefakte bauen. Das schont nicht nur Wandzeit, sondern hält auch die SSH-Interaktivität für Debugging erhalten, wenn mehrere Entwickler denselben Host nutzen.
02 Entscheidungsmatrix: biome.json vs. tsc inkrementell
Die folgende Tabelle richtet Regel-Inhaber für Formatierung und Linting an Inhaber des Typ-Graphen aus. Biome deckt Format und statische Regeln ab; TypeScript-Inkremental speichert Typinformation zwischen Läufen und verkürzt tsc-Wandzeiten in CI/CD.
| Thema | Biome (biome.json / CLI) |
TypeScript (tsc / tsconfig) |
|---|---|---|
| Zentrale Schalter | files.include, files.ignore, formatter, linter, vcs.useIgnoreFile |
"incremental": true, optional "tsBuildInfoFile", "composite": true für Project References |
| CLI-Beispiele | biome check --write ., in Pipelines biome ci . |
tsc -p tsconfig.json --incremental oder tsc -b im Monorepo |
| Parallelitätsmodell | Mehrdatei-Worker-Pool innerhalb der Biome-Binary | Überwiegend ein Programm; mit tsc -b parallele Projekte auf Graphen-Ebene |
| Typisches Cache-Artefakt | Projektnahe Caches; Release-Notes zu Version und Log-Flags beachten | *.tsbuildinfo laut tsBuildInfoFile, Standard oft .tsbuildinfo neben der Config |
| CI-Cache-Key-Eingaben | Lockfile, Biome-Version, Hash von biome.json |
Lockfile, TypeScript-Version, tsconfig-Graph, Hash relevanter Quellen |
Für reine Typprüfung ohne Ausgabe nutzen Teams häufig tsc --incremental --noEmit, damit keine Build-Artefakte die Pipeline verkomplizieren. Biome ersetzt das nicht: Regelverletzungen und Typfehler sind orthogonal und sollten beide als Merge-Blocker gelten, wenn Ihre CD-Policy das vorsieht.
03 Parallele Worker und CPU-Kern-Bindung (macOS)
macOS bietet kein taskset wie Linux. Praktische „Bindung“ bedeutet Richtlinie statt manuelles Pinning einzelner Threads: Halten Sie ein bis zwei Kerne frei für Remotedesktop, sshd und Hintergrunddienste. Behandeln Sie sysctl hw.ncpu als Obergrenze, nicht als Ziel-Parallelität für alle Node-Prozesse gleichzeitig.
| Host-Profil | Empfehlung Biome + tsc |
|---|---|
| 8 Performance-Kerne (Basisklasse M4) | In der CI sequenziell ausführen oder nur parallel, wenn dauerhaft etwa 24 GB+ freier RAM für beide Workloads bleiben. |
| 10–12 Kerne (Pro-Klasse) | Parallel möglich: Biome starten, danach tsc mit z. B. NODE_OPTIONS=--max-old-space-size=8192; andere Node-Tools auf etwa die Hälfte der logischen CPUs deckeln. |
| Interaktive SSH-Sitzung | nice nutzen oder Job-Anzahl senken, damit WindowServer während langer Checks flüssig bleibt. |
Fortgeschrittene Teams können Jobs mit taskpolicy-Attributen unter macOS mit niedrigerer QoS starten, um Hintergrundlast zu kennzeichnen. Die meisten Frontend-Pipelines begrenzen einfach gleichzeitige schwere Schritte und verlassen sich auf tsbuildinfo, um die Wandzeit zu drücken — ein pragmatischer Kompromiss auf Remote Mac.
04 Cache-Verzeichnisse, die sich in der CI lohnen
Stellen Sie read-mostly-Caches zwischen Commits wieder her, solange Lockfiles unverändert sind. Trennen Sie Caches strikt pro Branch oder mischen Sie den Lockfile-Hash in den Schlüssel. Kombinieren Sie diesen Abschnitt mit dem package.json-Skript-Preflight, damit Skriptänderungen die richtigen Layer invalidieren.
- TypeScript: Verzeichnis mit jedem
tsBuildInfoFilesowie ggf.node_modules/.cache, falls Ihr Wrapper Hilfsdaten ablegt. - Biome: Repo-Root mit
biome.jsonund interne Cache-Ordner der jeweiligen Version nach dem ersten Lauf. - Clean-Regel: Build-Info löschen, wenn sich
package.json, Workspace-Globs oder Compiler-Optionen ändern.
Ohne saubere Schlüssel reproduzieren Sie zufällig alte Graphen — genau das fällt erst in Stufe B der Vorab-Freigabe auf, wenn Warm- und Cold-Lauf stark divergieren.
05 CI- und CD-Platzierung auf Remote Mac
Ordnen Sie Jobs vom günstigsten Signal zum teuersten Artefakt: Dependencies installieren, dann Biome, dann inkrementelles tsc --noEmit, danach Unit-Tests, Bundler, schließlich Smoke- und Pre-Deploy-Checks. Die CD sollte keinen Build promoten, der nur Biome bestanden hat, aber die Typprüfung übersprungen hat — Biome ersetzt den Typchecker nicht.
In GitHub Actions, GitLab CI oder Jenkins bleibt die Idee gleich: Matrix-Jobs pro Paket nur dann, wenn der Host genug isolierte Ressourcen hat; sonst serielle Gates mit geteilten Cache-Uploads. Dokumentieren Sie die Reihenfolge im Runbook, damit On-Call nicht raten muss, welcher Schritt welchen Cache braucht.
06 Fünf-Schritte-Runbook (kopierbar)
- Biome- und TypeScript-Versionen im Lockfile pinnen und beide Versionen im CI-Log-Kopf ausgeben.
biome ci .mit committeter Root-biome.jsonausführen; bei Formatter-Drift hart fehlschlagen.tsc -p tsconfig.json --incremental --noEmit(odertsc -bbei References) laufen lassen undtsbuildinfoals Artefakt mit Schlüssel aus Branch und Lockfile cachen.- Wandzeit und CPU-Last protokollieren; überschreiten beide Schritte gemeinsam dauerhaft etwa 80 % CPU über zehn Minuten, auf zwei Workflow-Jobs splitten.
- Bei Fehlern die ersten fünfzig Diagnosen je Tool an das Ticket anhängen — vermeidet blindes erneutes Durchlaufen ganzer Suiten.
07 Dreistufige Vorab-Freigabe vor dem Release
Stufe A: Auf exakt dem Release-SHA Biome und inkrementelles tsc einmal mit leeren Caches ausführen — Reproduzierbarkeit beweisen. Stufe B: Der Warm-Lauf muss spürbar schneller sein (z. B. mindestens rund 30 %); sonst sind Cache-Keys oder Pfade wahrscheinlich falsch. Stufe C: Den in der CD-Dokumentation beschriebenen Smoke-Pfad vor dem Tag ausführen; Fehler dem verwendeten Cache-Schlüssel zuordnen.
Behandeln Sie biome.json und tsc --incremental als komplementäre Gates, persistieren Sie Cache-Dateien mit strikten Schlüsseln und deckeln Sie Parallelität auf Remote Mac, damit SSH nutzbar bleibt. Die dreistufige Abnahme erwischt veraltete tsbuildinfo, bevor Kunden es tun.
Nächste Schritte: Die MacWww-Startseite für Produktüberblick, Preise und Pakete für Apple-Silicon-Miete sowie die Hilfe zu SSH, VNC und Runner-Automation. Im Blog-Index finden Sie weitere CI-Rezepte für Frontend auf macOS.
Biome und tsc inkrementell auf gemietetem Mac
Stabiles Apple Silicon, echte macOS-Pfade und Bandbreite für parallele CI-Schritte. Preise ohne Login einsehen, dann Hilfe-Dokumente für SSH-Runner nutzen.