Logo
© 2019 - 2026 SantriKoding.

On This Page

Mobile navigation

Belajar Bun Dasar #4: Environment & Configuration

like emoticon 0
love emoticon 0
insightful emoticon 0
fire emoticon 0
cheer emoticon 0
celebrate emoticon 0
Belajar Bun Dasar #4: Environment & Configuration

Halo teman-teman semuanya, pada pembahasan sebelumnya kita telah mempelajari cara menggunakan Package Manager di Bun untuk menambahkan, menghapus, dan mengelola dependensi proyek dengan mudah. Sekarang, kita akan masuk ke topik yang tidak kalah penting, yaitu Environment & Configuration di Bun.

Dalam pengembangan aplikasi, sering kali kita membutuhkan cara untuk menyimpan konfigurasi seperti port server, API key, atau koneksi database tanpa menuliskannya langsung di dalam kode. Bun menyediakan dua pendekatan utama untuk hal ini: file .env dan file konfigurasi bunfig.toml.

Menggunakan File .env

Bun mendukung environment variables secara langsung menggunakan file .env, mirip dengan Node.js dan framework modern lainnya.

File .env biasanya berisi pasangan key-value yang digunakan untuk menyimpan variabel rahasia atau pengaturan aplikasi.

Buat file baru dengan nama .env di root proyek, lalu isi dengan contoh berikut:

PORT=3000
DATABASE_URL=mysql://root:12345@localhost:3306/bun_app
API_KEY=ABC123XYZ

Untuk mengakses nilai-nilai tersebut di dalam kode JavaScript atau TypeScript, kita dapat menggunakan process.env.

Contoh penggunaan:

console.log("Server berjalan di port:", process.env.PORT);
console.log("Koneksi database:", process.env.DATABASE_URL);

Secara default, Bun akan secara otomatis memuat file .env saat aplikasi dijalankan menggunakan bun run. Kita tidak perlu menginstal library tambahan seperti dotenv, karena fitur ini sudah menjadi bagian dari Bun.

Jika kita ingin menggunakan file .env lain (misalnya .env.production), kita dapat memanggilnya secara manual menggunakan perintah berikut:

bun --env-file=.env.production run app.js

File Konfigurasi bunfig.toml

Selain .env, Bun juga menyediakan file konfigurasi bernama bunfig.toml yang digunakan untuk mengatur perilaku dan konfigurasi global proyek Bun.

File ini biasanya terletak di direktori utama proyek. Untuk membuatnya, cukup buat file bernama bunfig.toml dan isi dengan konfigurasi berikut sebagai contoh:

name = "bun-app"
version = "1.0.0"
port = 3000

[install]
peer = true
optional = false

[define]
APP_ENV = "development"
API_URL = "https://api.santrikoding.com"

Penjelasan:

  • name dan version - digunakan untuk mendefinisikan identitas proyek.
  • port - bisa digunakan untuk mendefinisikan port default server.
  • [install] - menentukan perilaku saat menjalankan bun install.
  • [define] - digunakan untuk menyuntikkan global variables ke seluruh aplikasi pada waktu build atau runtime.

Untuk mengakses nilai yang didefinisikan di [define], kita bisa memanggilnya langsung seperti variabel global:

console.log(APP_ENV);
console.log(API_URL);

Menjalankan Aplikasi dengan Environment

Sebagai contoh, kita buat file server.js sederhana berikut:

const port = process.env.PORT || 8080;

Bun.serve({
  port,
  fetch(req) {
    return new Response(`Server berjalan di port ${port}`);
  },
});

Jika kita memiliki file .env seperti berikut:

PORT=4000

Lalu jalankan perintah:

bun run server.js

Maka output-nya akan menampilkan teks:

Server berjalan di port 4000

Artinya, Bun berhasil membaca variabel dari file .env dan menggunakannya di dalam aplikasi.

Menambahkan Environment untuk Production

Untuk membedakan pengaturan antara development dan production, kita bisa membuat beberapa file environment, misalnya:

  • .env.development
  • .env.production

Kemudian pada saat menjalankan server, kita tentukan file environment yang ingin digunakan:

bun --env-file=.env.production run server.js

Bun akan membaca file .env.production dan menerapkan konfigurasi yang sesuai.

Kesimpulan

Bun menyediakan sistem Environment dan Configuration yang sederhana namun kuat melalui dua mekanisme utama: file .env untuk variabel rahasia dan file bunfig.toml untuk konfigurasi global proyek.

Keduanya terintegrasi langsung dengan Bun tanpa perlu library tambahan, membuat pengaturan proyek menjadi lebih bersih dan efisien.

Pada artikel selanjutnya, kita akan mempelajari tentang Module System di Bun (import, export, dan kompatibilitas dengan Node.js).

Terima Kasih.

Artikel ini dibaca sebanyak 718 kali

Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CEO & Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komentar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

Memuat komentar...