Parser File Environment
File environment (.env) menyimpan konfigurasi sebagai pasangan kunci-nilai, memisahkan rahasia dan pengaturan dari kode. Dipopulerkan oleh metodologi twelve-factor app, digunakan di ekosistem Node.js, Python, Ruby, dan lainnya. Alat ini mengurai file .env dan menampilkan variabel dalam tampilan terstruktur.
Spesifikasi
Kasus Penggunaan Umum
- Memeriksa konfigurasi lingkungan aplikasi
- Memvalidasi sintaks file .env sebelum deployment
- Membandingkan file environment antar lingkungan (dev, staging, prod)
- Mengonversi variabel lingkungan ke JSON untuk dokumentasi
- Meninjau konfigurasi tanpa mengekspos ke log
Fitur
- Mengurai pasangan KEY=value dengan berbagai format
- Menangani nilai yang dikutip (tanda kutip tunggal dan ganda)
- Melewati komentar (#) dan baris kosong
- Toggle Tampilkan/Sembunyikan rahasia (menyamarkan kunci yang cocok dengan password, token, api, secret, dll.)
- Mengonversi ke JSON dan YAML untuk penggunaan programatik
- Tampilan jumlah komentar
Contoh
Konfigurasi Aplikasi
Coba →File .env tipikal dengan pengaturan database dan API.
# Database configuration
DATABASE_URL=postgres://localhost:5432/myapp
DATABASE_POOL_SIZE=10
# API Keys
API_KEY="sk-1234567890"
SECRET_KEY='super-secret-value'Tips
- Jangan pernah commit file .env ke version control. Gunakan .env.example sebagai gantinya.
- Nilai yang dikutip mempertahankan spasi di awal/akhir.
- Beberapa implementasi mendukung ekspansi variabel: ${VAR}.
- Gunakan file .env terpisah per lingkungan: .env.development, .env.production.
Pemahaman Parser File Environment
File variabel lingkungan (.env) menyimpan konfigurasi aplikasi sebagai pasangan KEY=VALUE sederhana, satu per baris. Format ini dipopulerkan oleh metodologi twelve-factor app, yang menganjurkan pemisahan ketat konfigurasi dari kode. Daripada meng-hardcode URL database, kunci API, dan feature flag, aplikasi membacanya dari variabel lingkungan, dan file .env menyediakan cara yang nyaman untuk mengatur variabel tersebut selama pengembangan.
Library dotenv, awalnya untuk Ruby dan kemudian di-port ke Node.js, Python, PHP, dan hampir setiap ekosistem, membaca file .env dan menyuntikkan nilai ke lingkungan proses. Format ini mendukung nilai tanpa kutip (DATABASE_HOST=localhost), nilai dengan tanda kutip ganda dengan escape sequence (MESSAGE="Hello\\nWorld"), dan nilai dengan tanda kutip tunggal yang diperlakukan secara literal (REGEX='^\\d+$'). Komentar dimulai dengan # dan baris kosong diabaikan.
Praktik kritis adalah jangan pernah meng-commit file .env ke version control karena biasanya mengandung rahasia. Sebagai gantinya, proyek menyertakan .env.example yang mencantumkan semua variabel yang diperlukan dengan nilai placeholder. Sistem CI/CD dan platform hosting menyediakan mekanisme mereka sendiri untuk mengatur variabel lingkungan secara aman.
Ekspansi variabel (mereferensikan variabel lain dengan sintaks \${VAR}) didukung oleh beberapa implementasi dotenv. Docker Compose mendukungnya secara native. Saat mengandalkan ekspansi, verifikasi bahwa implementasi dotenv spesifik Anda mendukungnya, karena perilaku bervariasi antar bahasa.
File .env biasanya berisi rahasia seperti kata sandi database, kunci API, dan kunci enkripsi. Meng-commit ini ke git mengeksposnya kepada siapapun dengan akses repositori, dan mereka tetap ada di riwayat git bahkan setelah dihapus. Tambahkan .env ke .gitignore dan gunakan .env.example dengan nilai placeholder untuk mendokumentasikan variabel yang diperlukan. Nilai dengan tanda kutip ganda menginterpretasikan escape sequence (\\n menjadi baris baru), sementara nilai dengan tanda kutip tunggal diperlakukan sebagai literal mentah tanpa pemrosesan escape. Nilai tanpa kutip dipotong dari spasi putih di akhir dan berhenti pada karakter # pertama, yang diperlakukan sebagai komentar inline.
Mengelola beberapa lingkungan biasanya melibatkan file .env terpisah: .env untuk default, .env.local untuk override khusus mesin (tidak di-commit), dan .env.development atau .env.production untuk nilai khusus lingkungan. Framework seperti Next.js, Vite, dan Create React App memuat ini dalam urutan prioritas tertentu. Untuk Docker, Compose mendukung env_file untuk memuat variabel dari file dan kunci environment untuk mengaturnya langsung. File .env Compose di root proyek digunakan untuk substitusi variabel di docker-compose.yml itu sendiri. Variabel ARG build-time berbeda dari variabel ENV runtime dan tidak boleh mengandung rahasia.