Langsung ke konten utama

Bun: Cara Membuat Aplikasi JavaScript & TypeScript yang Cepat dan Modern


Bun: Runtime JavaScript Cepat dan Lengkap untuk Aplikasi Modern

JavaScript adalah bahasa pemrograman yang populer dan serbaguna, yang digunakan untuk membuat aplikasi web, server, desktop, dan seluler. Namun, JavaScript juga memiliki beberapa tantangan dan keterbatasan, seperti kinerja, kompleksitas, dan kompatibilitas.

Untuk mengatasi tantangan ini, muncul Bun, sebuah toolkit JavaScript dan TypeScript yang lengkap dan cepat. Bun dikirimkan sebagai sebuah eksekutabel tunggal yang disebut bun. Di intinya adalah runtime Bun, sebuah runtime JavaScript cepat yang dirancang sebagai pengganti Node.js.

Bun memiliki tiga tujuan desain utama:

  • Kecepatan. Bun mulai cepat dan berjalan cepat. Ia memperluas JavaScriptCore, mesin JS yang berorientasi kinerja yang dibangun untuk Safari. Saat komputasi berpindah ke edge, hal ini sangat penting.
  • API yang elegan. Bun menyediakan seperangkat API minimal yang sangat dioptimalkan untuk melakukan tugas-tugas umum, seperti memulai server HTTP dan menulis file.
  • DX yang kohesif. Bun adalah toolkit lengkap untuk membangun aplikasi JavaScript, termasuk manajer paket, test runner, dan bundler.

Bun bertujuan menjadi pengganti Node.js. Ia secara native mengimplementasikan ratusan API Node.js dan Web, termasuk fs, path, Buffer, dan lainnya. Tujuan Bun adalah menjalankan sebagian besar JavaScript server-side dunia dan menyediakan alat untuk meningkatkan kinerja, mengurangi kompleksitas, dan menggandakan produktivitas pengembang.

Bun juga mendukung TypeScript, JSX, dan API standar Web, seperti fetch, ReadableStream, Request, Response, WebSocket, dan FormData. Bun dapat langsung mengeksekusi file .ts dan .tsx, dan menghormati pengaturan yang dikonfigurasikan di tsconfig.json.

Bun juga menyediakan CLI yang cerdas untuk menjalankan, menguji, dan membundel kode Kita. Kita dapat menggunakan bendera --watch untuk secara otomatis me-restart proses saat ada file yang berubah. Kita juga dapat menggunakan klien npm asli Bun untuk melihat seberapa cepat menginstal dependensi.

Bun adalah proyek open source yang masih dalam pengembangan aktif. Kita dapat menggunakannya untuk mempercepat alur kerja pengembangan Kita atau menjalankan kode produksi yang lebih sederhana di lingkungan yang terbatas sumber daya, seperti fungsi serverless. Tim Bun sedang mengerjakan kompatibilitas Node.js yang lebih lengkap dan integrasi dengan kerangka kerja yang ada.

Jika Kita tertarik untuk mencoba Bun, Kita dapat menginstalnya dengan beberapa cara, seperti npm, Homebrew, Docker, atau skrip instalasi resmi. Untuk memeriksa bahwa Bun telah terinstal dengan benar, buka jendela terminal baru dan jalankan bun --version. Kita juga dapat melihat dokumentasi resmi Bun untuk mempelajari lebih lanjut tentang fitur dan penggunaannya.

Bun adalah runtime JavaScript yang cepat dan lengkap untuk aplikasi modern. Dengan Bun, Kita dapat mengembangkan, menguji, menjalankan, dan membundel proyek JavaScript & TypeScript Kita dengan mudah dan efisien. Bun dirancang untuk kecepatan, API yang elegan, dan DX yang kohesif. Coba Bun sekarang dan rasakan perbedaannya!

Api yang tidak di support oleh BUN

Meskipun Bun memiliki tujuan untuk kompatibilitas Node.js yang lengkap, masih ada beberapa API yang belum didukung oleh Bun. Beberapa API ini adalah:

  • node:child_process. API ini memungkinkan Anda untuk menjalankan proses anak secara asinkron atau sinkron. Bun belum mendukung API ini karena ia menggunakan model eksekusi yang berbeda dari Node.js. Bun menggunakan Web Workers untuk menjalankan kode secara paralel, yang lebih ringan dan lebih aman daripada proses anak.
  • node:cluster. API ini memungkinkan Anda untuk membuat klaster pekerja yang dapat berbagi soket server. Bun belum mendukung API ini karena ia tidak memerlukan klaster untuk meningkatkan kinerja. Bun dapat menangani beban tinggi dengan satu pekerja saja, berkat mesin JavaScriptCore yang cepat dan efisien.
  • node:crypto. API ini menyediakan fungsi kriptografi seperti enkripsi, dekripsi, hashing, dan penandatanganan digital. Bun belum mendukung API ini karena ia sudah mendukung API Web Crypto, yang merupakan standar web untuk kriptografi. Bun merekomendasikan penggunaan API Web Crypto daripada API node:crypto.
  • node:fs. API ini menyediakan fungsi untuk berinteraksi dengan sistem file. Bun belum mendukung API ini karena ia sudah mendukung API File System Access, yang merupakan standar web untuk akses sistem file. Bun merekomendasikan penggunaan API File System Access daripada API node:fs.

Menjalankan Bun untuk development

Untuk menjalankan Bun untuk development, Anda dapat menggunakan mode watch, yang memungkinkan Anda untuk secara otomatis me-restart server atau aplikasi Anda saat ada perubahan file. Mode watch sangat berguna untuk menghemat waktu dan meningkatkan produktivitas Anda saat mengembangkan aplikasi JavaScript atau TypeScript.

Untuk menjalankan file dalam mode watch, Anda dapat menggunakan bendera --watch setelah bun. Misalnya, bun --watch run index.ts. Bun akan memantau file yang Anda jalankan dan file dependensinya, dan akan me-restart proses saat ada perubahan.

Untuk menjalankan skrip package.json dalam mode watch, Anda juga dapat menggunakan bendera --watch setelah bun. Misalnya, bun --watch run dev. Bun akan memantau skrip yang Anda jalankan dan file dependensinya, dan akan me-restart proses saat ada perubahan.

Anda juga dapat menggunakan bun dev untuk menjalankan aplikasi React dalam mode watch. Bun dev adalah perintah khusus yang memungkinkan Anda untuk mengembangkan aplikasi React dengan cepat dan mudah. Bun dev akan memulai server pengembangan yang mendukung hot reload, code splitting, dan server-side rendering.

Anda juga dapat menggunakan bun build untuk membuat build produksi untuk aplikasi React Anda. Bun build akan mengoptimalkan kode Anda untuk kinerja terbaik, termasuk minifikasi, treeshaking, dan prerendering.

Bun juga mendukung beberapa opsi lain untuk menjalankan Bun untuk development, seperti menggunakan Docker, Windows Subsystem for Linux, atau integrasi dengan kerangka kerja lain seperti Next.js. Anda dapat melihat dokumentasi resmi Bun untuk mempelajari lebih lanjut tentang opsi-opsi ini.

Integrasi Bun dengan PM2

Untuk mengimplementasikan bun di production dengan PM2, Anda perlu menginstal PM2 dan bun di server Anda. PM2 adalah manajer proses yang populer yang mengelola dan menjalankan aplikasi Anda sebagai daemon (proses latar belakang). PM2 menawarkan fitur seperti pemantauan proses, restart otomatis, dan penskalaan mudah.

Anda dapat menginstal PM2 dengan menggunakan npm atau yarn. Misalnya, npm install -g pm2. Anda juga dapat menginstal bun dengan menggunakan npm atau yarn. Misalnya, npm install -g bun.

Setelah menginstal PM2 dan bun, Anda dapat menjalankan aplikasi bun Anda dengan PM2 dengan dua cara: sebagai opsi CLI atau dalam file konfigurasi.

  • Dengan --interpreter. Untuk memulai aplikasi Anda dengan PM2 dan bun sebagai interpreter, buka terminal Anda dan jalankan perintah berikut: pm2 start --interpreter ~/.bun/bin/bun index.ts. Perintah ini akan menjalankan file index.ts dengan bun sebagai interpreter.
  • Dengan file konfigurasi. Alternatifnya, Anda dapat membuat file konfigurasi PM2. Buat file bernama pm2.config.js di direktori proyek Anda dan tambahkan konten berikut:
module.exports = {
  name: "app",
  script: "index.ts",
  interpreter: "~/.bun/bin/bun",
};

File ini akan menentukan nama, skrip, dan interpreter untuk aplikasi Anda. Setelah menyimpan file, Anda dapat memulai aplikasi Anda dengan PM2 dengan perintah: pm2 start pm2.config.js.

Itu saja! Aplikasi web JavaScript/TypeScript Anda sekarang berjalan sebagai daemon dengan PM2 menggunakan bun sebagai interpreter. Anda dapat menggunakan perintah PM2 lainnya untuk memantau, menghentikan, atau menghapus aplikasi Anda. Misalnya, pm2 list, pm2 stop, atau pm2 delete.

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Apa itu index file seperti index.html, index.php kegunaannya dan bagaimana membuat custom nya

Index file adalah file yang berfungsi sebagai halaman utama atau tampilan pertama dari sebuah website. File ini memiliki nama default yang bervariasi, tergantung pada jenis server dan konfigurasinya, namun beberapa nama default yang umum digunakan adalah index.html, index.php, index.jsp, atau index.asp.

Membersihkan cache dan dalvik-cache menggunakan link2sd

Mungkin banyak yang menanyakan kenapa internalnya selalu berkurang free space nya. Padahal tidak menginstall applikasi baru. Hanya melakukan aktifitas normal. Dan sampai pada waktunya, internal memory low dan tidak bisa menambah aplikasi baru lagi.  Ada kemungkinan file cache dari sebuah aplikasi atau dalvik yang dibuat oleh OS android sudah  mulai membengkak. Sehingga perlu di bersihkan secara manual supaya tersedia penyimpanan kosong yang banyak. Sebelum mengetahui cara membersihkan cache dan dalvik cache, kita kupas sekilas apa itu cache dan dalvik cache. Cache adalah sebuah data file sementara yang di hasilkan oleh sebuah applikasi guna mempercepat pemrosesan dimasa yang akan datang (Cache Wikipedia) .  Dalvik-cache adalah ruang kosong sementara yang di pake oleh java virtual machine untuk menjalankan aplikasi android (Dalvik Wikipedia) .