Pada seri artikel kali ini, kita akan belajar Bun Dasar secara bertahap dan terstruktur. Seri ini dirancang khusus untuk membantu memahami fondasi utama dari Bun, JavaScript runtime modern yang sangat cepat, efisien, dan terintegrasi penuh, mencakup package manager, bundler, transpiler, hingga test runner bawaan.
Bun hadir sebagai generasi baru pengganti Node.js, dibangun dengan bahasa Zig dan menggunakan JavaScriptCore Engine (mesin yang sama dengan Safari).
Tujuannya sederhana: menjalankan JavaScript dan TypeScript dengan kecepatan tinggi dan pengalaman pengembangan yang jauh lebih ringan.
Di seri ini, kita akan memulai dengan pengenalan Bun, mengapa runtime ini menjadi populer, serta bagaimana cara menginstalnya di komputer kita.
Setelah itu, kita akan belajar bagaimana menjalankan file JavaScript dan TypeScript secara langsung menggunakan perintah bun run.
Selanjutnya, kita akan membahas beberapa konsep penting seperti:
- Package Manager di Bun, untuk menambahkan, menghapus, dan mengelola dependensi menggunakan
bun adddanbun install. - Environment & Configuration, untuk mengatur variabel dan pengaturan proyek dengan
.envsertabunfig.toml. - Module System, mencakup penggunaan
importdanexport, serta kompatibilitas antara ESM dan CommonJS. - Membuat Web Server, yaitu cara membangun server HTTP langsung dengan
Bun.serve()tanpa framework tambahan. - Routing Manual, untuk mengatur berbagai endpoint dan metode HTTP (GET, POST, PUT, DELETE) secara sederhana.
- Membaca dan Menulis File, menggunakan API bawaan
Bun.file()danBun.write()untuk mengelola teks, JSON, atau file biner. - Menggunakan Database, baik SQLite bawaan maupun database eksternal seperti MySQL dan PostgreSQL.
Seri ini sangat cocok bagi teman-teman yang ingin memahami dasar pengembangan backend modern dengan Bun, sebelum melangkah lebih jauh ke materi lanjutan seperti REST API dengan Bun dan Hono, atau bahkan Fullstack App menggunakan Bun dan React/Vue.
{ setTimeout(() => { showShimmer = false; }, 300); })"
loading="lazy"
:class="{'opacity-0': !loaded, 'opacity-100': loaded}"
>