Claude Code Bun: JavaScript-Laufzeit, Bundler und Test-Runner mit KI
Wer heute ein neues JavaScript-Projekt startet, fragt sich: Node.js, Deno — oder Bun? Bun hat sich in kurzer Zeit von einem Experiment zu einer ernsthaften Alternative entwickelt. Schnellere Installationszeiten, integrierter Test-Runner, nativer Bundler, kompatibel mit dem npm-Ökosystem — und das alles in einem einzigen Binary. Was das in der Praxis bedeutet und wie Claude Code dabei hilft, zeigt dieser Artikel.
Bun ist kein Drop-in-Ersatz für Node.js, der still im Hintergrund arbeitet. Es ist eine Neuentscheidung: ein Stack, der Runtime, Package Manager, Bundler und Test-Runner in einem vereint, ohne für jede dieser Aufgaben ein separates Tool zu konfigurieren. Claude Code macht den Übergang und die tägliche Arbeit damit erheblich schneller — besonders bei der Migration bestehender Projekte und der Testgenerierung.
Claude Code Mastery — Bun, Agents, Hooks auf Deutsch
Nicht nur Bun: der Kurs zeigt, wie du Claude Code wirklich produktiv einsetzt — für Entwicklungsabläufe, autonome Agents und professionelle Workflows. Einmalig bezahlt, kein Abo.
Zum Kurs — Jetzt starten → Einmalzahlung · Kein Abo · 14 Tage Rückgaberecht1. Was ist Bun?
Bun ist eine JavaScript-Laufzeitumgebung, die auf JavaScriptCore (der Engine hinter Safari) aufbaut statt auf V8. Das Ziel war von Anfang an Geschwindigkeit: Startzeit, Installationszeit, Build-Zeit. Bun implementiert die Node.js-API großteils kompatibel — bestehende Node.js-Projekte laufen in vielen Fällen ohne Änderungen.
Was Bun von Node.js unterscheidet, ist nicht nur die Geschwindigkeit, sondern der Umfang. Ein Standard-Node.js-Projekt benötigt npm als Package Manager, jest oder vitest als Test-Runner, webpack oder vite als Bundler und meistens noch ts-node oder tsx für TypeScript. Bun ersetzt all das:
- Runtime: Bun führt JavaScript und TypeScript direkt aus — kein Compile-Schritt notwendig
- Package Manager:
bun addersetztnpm install, typischerweise 10–30× schneller - Test-Runner:
bun testmit Jest-kompatibler API, kein zusätzliches Package - Bundler:
bun buildbündelt für Browser, Node oder Bun selbst
Kompatibilität: Bun unterstützt das npm-Registry vollständig. Du kannst weiterhin alle npm-Packages verwenden — bun add express, bun add react usw. Die package.json bleibt als Format erhalten.
2. Installation und erste Schritte
Die Installation ist ein einziger Befehl:
curl -fsSL https://bun.sh/install | bash
Danach steht das bun-Binary zur Verfügung. Ein neues Projekt anlegen:
# Neues Projekt initialisieren
bun init
# Abhängigkeiten installieren (aus bestehender package.json)
bun install
# Einzelne Pakete hinzufügen
bun add express
bun add -d typescript @types/node
# Script ausführen (wie npm run)
bun run start
# TypeScript direkt ausführen, ohne Compile-Schritt
bun run index.ts
Der wichtigste Unterschied beim Einstieg: TypeScript läuft ohne Konfiguration. Kein tsconfig.json erzwungen, kein ts-node installiert — bun run datei.ts funktioniert sofort.
Claude Code beim Projekteinstieg
Claude Code hilft beim Einrichten direkt aus dem Terminal:
claude "Erstelle ein neues Bun-Projekt mit Express, TypeScript und einer
einfachen REST-API für Nutzer-Verwaltung. Nutze bun init und richte
die Ordnerstruktur ein."
Claude Code führt bun init aus, legt die Dateistruktur an, schreibt die Typdefinitionen und richtet die package.json-Scripts ein — alles in einem Durchgang, ohne dass du jeden Schritt einzeln eingeben musst.
3. Bun als Package Manager
Der Package Manager ist oft der erste Berührungspunkt mit Bun — weil der Geschwindigkeitsunterschied sofort sichtbar ist. Bun liest und schreibt Pakete parallel, nutzt ein binäres Lockfile (bun.lockb) statt JSON und hält einen globalen Cache vor.
Typische Vergleichswerte bei einem mittelgroßen Projekt mit 200+ Abhängigkeiten:
- npm install (kalter Cache): ~45 Sekunden
- pnpm install (kalter Cache): ~20 Sekunden
- bun install (kalter Cache): ~4 Sekunden
Bei warmem Cache (zweite Installation) ist Bun noch schneller, weil es aus dem lokalen Cache liest ohne den npm-Registry erneut zu kontaktieren. In CI-Pipelines, wo Caches häufig warm gehalten werden, ist der Unterschied am größten.
Lockfile-Kompatibilität: bun.lockb ist ein binäres Format und kann nicht direkt in Git als Text betrachtet werden. Das ist kein Problem für den Workflow — aber wer im Team arbeitet, sollte sicherstellen, dass alle Bun nutzen, damit das Lockfile konsistent bleibt.
4. Bun Test Runner
Bun kommt mit einem integrierten Test-Runner, der die Jest-API nachbildet. Wer bestehende Jest-Tests hat, kann diese meistens direkt mit bun test ausführen — ohne Jest zu installieren.
// math.test.ts
import { describe, it, expect } from "bun:test";
import { addiere, multipliziere } from "./math";
describe("Rechenoperationen", () => {
it("addiert zwei Zahlen korrekt", () => {
expect(addiere(2, 3)).toBe(5);
});
it("multipliziert zwei Zahlen korrekt", () => {
expect(multipliziere(4, 5)).toBe(20);
});
});
# Tests ausführen
bun test
# Einzelne Datei testen
bun test math.test.ts
# Im Watch-Mode
bun test --watch
Claude Code generiert Tests für bestehende Funktionen direkt im richtigen Format:
claude "Schreib Tests für alle Funktionen in src/utils.ts mit bun:test.
Decke Happy Path und Fehlfälle ab."
Claude Code liest utils.ts, analysiert jede exportierte Funktion und generiert eine vollständige Testdatei mit sinnvollen Testfällen — inklusive Edge Cases, die man beim schnellen Schreiben übersieht.
5. Bun.serve() für HTTP-Server
Bun hat eine native HTTP-Server-API eingebaut, die ohne Express oder Fastify auskommt. Bun.serve() ist deutlich schneller als Node.js-basierte Lösungen und eignet sich für einfache APIs und Microservices:
// server.ts
const server = Bun.serve({
port: parseInt(process.env.PORT ?? "3000"),
fetch(req) {
const url = new URL(req.url);
if (url.pathname === "/health") {
return Response.json({ status: "ok" });
}
if (url.pathname === "/api/nutzer" && req.method === "GET") {
return Response.json({ nutzer: [] });
}
return new Response("Nicht gefunden", { status: 404 });
},
});
console.log(`Server läuft auf Port ${server.port}`);
Neben Bun.serve() bietet Bun auch Bun.file() für schnellen Dateizugriff. Die API ist einfacher als Node.js fs und deutlich schneller bei großen Dateien:
// Datei lesen
const datei = Bun.file("./daten.json");
const inhalt = await datei.json();
// Datei schreiben
await Bun.write("./ausgabe.txt", "Hallo Welt");
6. Bundling mit bun build
bun build bündelt JavaScript und TypeScript für verschiedene Ziele — Browser, Node.js oder Bun selbst. Die API ist ähnlich wie esbuild, auf dem Bun intern aufbaut:
# Für den Browser bündeln
bun build ./src/index.ts --outdir ./dist --target browser
# Für Node.js bündeln (z.B. für Deployment)
bun build ./src/server.ts --outdir ./dist --target node
# Minifiziert
bun build ./src/index.ts --outdir ./dist --minify
Im Vergleich zu Webpack oder Vite benötigt bun build keine Konfigurationsdatei für Standard-Fälle. Für komplexere Setups (Plugins, Custom Loader) gibt es eine JavaScript-API.
7. Claude Code und Bun: Migration und tägliche Arbeit
Wo Claude Code den größten Mehrwert im Bun-Kontext bringt, sind zwei Szenarien: die Migration bestehender Projekte und die tägliche Entwicklungsarbeit.
Node.js-Projekt auf Bun migrieren
Eine Migration ist kein Einzeiler. Jest-Imports müssen angepasst werden, einige Node.js-spezifische APIs verhalten sich in Bun leicht anders, und Build-Scripts müssen umgeschrieben werden. Mit Claude Code geht das systematisch:
claude "Migriere dieses Node.js-Projekt auf Bun. Ersetze jest durch bun:test,
passe die package.json-Scripts an und prüfe welche Node.js-APIs
eventuell nicht kompatibel sind."
Claude Code liest alle relevanten Dateien — package.json, bestehende Tests, Konfigurationsdateien — und macht die Änderungen in einem Schritt. Was sonst ein halber Arbeitstag ist (Dateien durchgehen, Imports anpassen, Scripts testen), dauert damit Minuten.
Bun-Scripts schreiben
Bun eignet sich gut für Automatisierungs-Scripts, die schnell starten müssen — weil TypeScript ohne Compile-Schritt läuft und Bun.file() sowie fetch() nativ verfügbar sind. Claude Code schreibt solche Scripts auf Beschreibung:
claude "Schreib ein Bun-Script das alle JSON-Dateien in ./daten/ liest,
die Einträge nach Datum sortiert und eine zusammengefasste Ausgabe
nach ./ausgabe/report.json schreibt."
"Das Script liestBun.file(), sortiert im Speicher und schreibt mitBun.write()— ohne externe Abhängigkeiten, direkt in TypeScript."
Der Produktivitätsgewinn kommt aus zwei Richtungen: Bun ist schneller als Node.js, und Claude Code schreibt den Code schneller als von Hand. Zusammen bedeutet das: ein Script das vorher 20 Minuten Schreiben und 3 Sekunden Laufzeit hatte, braucht mit Claude Code 2 Minuten Beschreibung und 0,3 Sekunden Laufzeit.
Verwandte Artikel für den Einstieg:
- Claude Code Vitest — Test-Runner-Vergleich und Workflow mit Vitest
- Claude Code TypeScript — TypeScript-Projekte mit Claude Code aufsetzen und pflegen
Claude Code Mastery — von Bun-Scripts bis zum produktiven Agenten
Bun ist ein Baustein — aber nicht der einzige. Im Kurs lernst du Agents, MCP-Server, Hooks, Multi-Agent-Workflows und mehr. Vollständig auf Deutsch, einmalig bezahlt.
Jetzt starten → Einmalzahlung · Kein Abo · 14 Tage RückgaberechtKurs · Claude Code Mastery
Von Bun-Scripts zum produktiven AI-Agenten
Bun. Agents. MCP. Hooks. Multi-Agent-Workflows. Alles auf Deutsch, einmalig bezahlt — kein Abo, keine Plattformabhängigkeit.
Einmalzahlung · Kein Abo · 14 Tage Rückgaberecht