Bun
Übersicht
Bun ist eine All-in-One JavaScript/TypeScript Runtime, die Node.js, npm, webpack und Jest durch eine einzige Binärdatei ersetzt. Sie bietet native TypeScript-Unterstützung, einen leistungsstarken HTTP-Server (Bun.serve()), einen schnellen Paketmanager, einen Bundler und einen Jest-kompatiblen Test-Runner mit deutlich höherer Geschwindigkeit.
Anleitung
- Verwende
Bun.serve()zum Erstellen von HTTP-Servern – es verarbeitet über 100.000 Anfragen pro Sekunde mit integrierter WebSocket-Unterstützung, TLS und Streaming-Antworten. - Verwende
bun install(10-30x schneller als npm),bun add,bun removeund bevorzugebun.lock(Textformat) für lesbare Git-Diffs. - Nutze
Bun.build()mit passendem Ziel ("browser","bun","node"), aktiviere Code-Splitting mitsplitting: trueund konfiguriere Tree Shaking. - Verwende
bun testmit der Jest-kompatiblen API (describe,it,expect), Snapshot-Tests, Mocking mitmock.module()und--coveragefür Codeabdeckung. - Bevorzuge
Bun.file()undBun.write()anstelle von Node.jsfsfür deutlich schnellere Dateioperationen; verwendeBun.Globfür Mustervergleiche. - Nutze
Bun.password.hash()undBun.password.verify()für bcrypt/argon2 anstelle von npm-Paketen. - Ersetze beim Migrieren von Node.js
nodedurchbunin Skripten, lassepackage.jsonunverändert und beachte, dass die meisten npm-Pakete ohne Änderungen funktionieren. Verwendebun:sqlitefür eingebettete Datenbanken anstelle von npm-Paketen.
Beispiele
Beispiel 1: Einen leistungsstarken API-Server erstellen
Benutzeranfrage: „Erstelle eine REST-API mit Buns integriertem HTTP-Server“
Aktionen:
- Server mit
Bun.serve()und Routen-Handler erstellen - JSON-Körper mit
request.json()parsen undResponse-Objekte zurückgeben - WebSocket-Upgrade für Echtzeit-Funktionen hinzufügen
Bun.passwordfür Authentifizierung undbun:sqlitefür Datenspeicherung verwenden
Ausgabe: Ein schneller API-Server, der nur Buns eingebaute Funktionen nutzt – ohne externe Abhängigkeiten.
Beispiel 2: Ein Node.js-Projekt zu Bun migrieren
Benutzeranfrage: „Stelle mein Express-Projekt von Node.js auf Bun um“
Aktionen:
npm installdurchbun installin CI und lokaler Einrichtung ersetzenpackage.json-Skripte aktualisieren undbun runanstelle vonnodeverwendendotenvdurch Buns integriertes.env-Laden ersetzen- Test-Runner von Jest zu
bun testmit denselben Testdateien wechseln
Ausgabe: Ein Bun-betriebenes Projekt mit schnelleren Installationen, schnellerem Start und schnellerer Testausführung.
Richtlinien
- Verwende
Bun.serve()für neue HTTP-Server – es ist deutlich schneller als Express auf Bun. - Bevorzuge
Bun.file()undBun.write()gegenüber Node.jsfsfür Dateioperationen. - Nutze
bun:sqlitefür lokale Daten anstelle von zusätzlichen npm-Paketen für SQLite. - Verwende
Bun.passwordfür Authentifizierung anstelle vonbcrypt/argon2-npm-Paketen – für null native Abhängigkeiten. - Behalte
bun.lock(Textformat) im Git für lesbare Diffs. - Teste mit
bun testanstelle von Jest – gleiche API, aber deutlich schnellere Ausführung. - Verwende bei Browser-Zielen
Bun.build()mittarget: "browser".