Zum Hauptinhalt springen

Budgets nützen wenig, wenn nichts sie durchsetzt — und sind nicht durchsetzbar, wenn sie am Tag ihrer Einführung scheitern. Hier sind beide Aufgaben getrennt: Ziele sagen, wo wir hinwollen; Sperrklinken verhindern, dass die heutige Zahl zur morgigen Untergrenze wird.

Ziele

Wohin der Build kommen soll. Bewertet und angezeigt, aber nie build-brechend.

MetrikAktuellWarnung / FehlerUrteil
route_js_kb483.8 KB150 / 250Schlecht
baseline_js_kb79.6 KB80 / 120Gut
doc_html_kb2.8 KB50 / 100Gut

Die schwerste Route liegt deutlich über ihrem Ziel, und genau das offen zu sagen ist der Sinn der Sache. Ein Dashboard, das nur Grün zeigt, hat aufgehört, eine Messung zu sein.

Sperrklinken

Der gemessene Wert zum Zeitpunkt seiner Annahme. Diese lassen den Build scheitern, wenn sie überschritten werden, und bewegen sich nur nach unten — eine zu senken ist die Art, eine Verbesserung festzuschreiben.

MetrikAktuellObergrenzeSpielraum (KB)
route_js_kb483.8630+146.2
baseline_js_kb79.682+2.4
median_route_js_kb213.8372+158.2
total_client_js_kb2205.62270+64.4
doc_html_kb2.85+2.2

Warum ausgerechnet Bundle-Größe

Nicht alles gehört in ein Gate. Bundle-Gewicht eignet sich ungewöhnlich gut dafür:

  • Es ist im Review unsichtbar — ein einzeiliger Import kann hundert Kilobyte hinzufügen, ohne dass man es im Diff sähe.
  • Es ist deterministisch — gleicher Quellcode, gleiche Zahl, also flackert die Prüfung nicht.
  • Es lässt sich nur vor dem Ausliefern abfangen — wenn Echtnutzerdaten es zeigen, haben Nutzer es längst heruntergeladen.

Gemessen am 2026-09-18 · NODE_ENV=production

Geht dieses Pattern noch besser? Sag uns, wie.

Feedback geben