Problem

Moderne Webapplikationen in einer Node.js Umgebung aufzusetzen, benötigt oftmals unnötig viel Zeit und Nerven.

Es müssen die gewünschten Bundler und Transpiler installiert und konfiguriert werden. Bei TypeScript-Projekten kommen zusätzliche Abhängigkeiten und Konfigurationen hinzu.

Bestenfalls wollt ihr eure Komponenten auch testen. Es sollte daher auch ein Testframework (z. B. Jest) installiert und aufgesetzt werden.

Wäre es nicht schön, wenn die JavaScript-Runtime das nicht schon alles out of the box könnte?

Lösung

Bun ist eine neue JavaScript-Runtime, die als All-in-one-Toolkit fungiert. Bun kann Code ausführen, builden, testen und debuggen. Node.js ist seit der Veröffentlichung vor 14 Jahren immer weiter gewachsen, leider ohne zentrale Planung. Dadurch wurde die Runtime komplexer und langsamer.

Bun verwendet im Gegensatz zu Node.js V8-Engine, die deutlich performantere JavaScriptCore Engine.

Mit Bun lassen sich Projekte wesentlich einfacher aufbauen und schneller ausführen/bauen, ohne auf bekannte Node.js Features zu verzichten. Ihr könnt mit Bun weiterhin dieselben Web-APIs, integrierten Module (z. B. fs, path etc.) und npm packages inkl. package.json verwenden. Ein Package Manager ist mit Bun auch nicht mehr nötig.

Bun stellt auch eine "bash–like" Shell zur Verfügung. Hiermit lassen sich CLI/REPL Tools in Java- bzw. TypeScript implementieren.

Installation mit Homebrew

brew tap oven-sh/bun
brew install bun

Eine Installation per curl, docker und npm ist auch möglich.

Kompilierungsgeschwindigkeit von Bun im Vergleich

Kompilierungsgeschwindigkeit von Bun im Vergleich

CLI-Befehle (Auszug)

bun init – erstellt ein leeres bun-Projekt
bun run start – führt das start-Skript aus
bun run <file> – transpiliert JavaScript / TypeScript files
bun install <package> – installiert ein package
bun build ./index.tsx – baut das Projekt
bun test – führt die Tests aus

SCHREIB UNS

* Pflichtfeld

SCHREIB UNS

* Pflichtfeld

Cookie-Einstellungen

Diese Website verwendet Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und Zugriffe auf die Website zu analysieren. Zudem werden Informationen zu Ihrer Verwendung der Website an Partner für soziale Medien, Werbung und Analysen weitergegeben. Die Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. Dort können Sie nachträglich auch Ihre Cookie-Einstellungen ändern.

contact icon

Kontakt aufnehmen