Environment Variables
Menyimpan konfigurasi lokal di .env.local serta membedakan value server-only dari value browser yang memakai prefix NEXT_PUBLIC_.
Tujuan belajar
- Menjelaskan peran .env.local untuk konfigurasi lokal
- Membedakan environment variable server-only dan NEXT_PUBLIC_
- Menghindari commit secret ke repository
Isi lesson
6 blok- 1.Simpan konfigurasi, bukan rahasia di source codeBelum selesaiWajib
- 2.Pisahkan value private dan publicBelum selesaiWajib
- 3.Coding practiceBelum selesaiWajib
- 4.NEXT_PUBLIC_ berarti value dapat dilihat di browserBelum selesaiWajib
- 5.Cek pemahamanBelum selesaiWajib
- 6.RingkasanBelum selesaiWajib
Simpan konfigurasi, bukan rahasia di source code
WajibEnvironment variables membantu project membaca value yang berbeda tanpa menulisnya langsung di source code. Untuk pengembangan lokal, .env.local adalah tempat yang umum untuk value tersebut dan seharusnya tidak masuk Git. Letakkan file ini di root project, bukan di dalam src.
Secara default, environment variable hanya tersedia di server. Prefix NEXT_PUBLIC_ membuat value tersedia ke browser dan nilainya dibundel saat build. Karena itu, prefix tersebut bukan cara menyimpan secret. Gunakan hanya untuk value yang memang aman dilihat user, misalnya nama aplikasi atau public analytics identifier yang memang dirancang untuk diekspos.
Bagian ini memengaruhi progres lesson.
Pisahkan value private dan public
Wajib# .env.local
COURSE_CATALOG_TOKEN=replace-with-local-value
NEXT_PUBLIC_APP_NAME=FluentStack
# app/api/course-summary/route.ts
const token = process.env.COURSE_CATALOG_TOKEN;
# app/ui/app-name.tsx
const appName = process.env.NEXT_PUBLIC_APP_NAME ?? "FluentStack";COURSE_CATALOG_TOKEN hanya dibaca pada sisi server dan tidak boleh dikirim ke browser. NEXT_PUBLIC_APP_NAME boleh dipakai pada UI browser karena bukan secret. Walaupun sebuah value public, file .env.local tetap tidak perlu di-commit; gunakan contoh file terpisah bila tim perlu mengetahui nama variable yang harus diisi.
Bagian ini memengaruhi progres lesson.
Coding practice
WajibDibuka di workspace khususClassify Next environment values
Lengkapi env map untuk membedakan token server-only dari nama aplikasi public serta memastikan .env.local tidak masuk commit.
Tujuan awal: Fokus di tab TSX.
Practice ini dibuka di workspace khusus. Buka practice untuk memakai editor, preview, dan cek otomatis.
Tombol selesai aktif setelah semua validasi wajib lolos.
Peringatan
WajibNEXT_PUBLIC_ berarti value dapat dilihat di browser
Jangan memberi prefix NEXT_PUBLIC_ pada token, private key, password, service role key, atau value yang hanya boleh hidup di server. Prefix itu membuat nilai tersedia dalam JavaScript browser pada build. Jika ragu apakah value boleh dibuka user, perlakukan value tersebut sebagai private sampai kamu memahami kebutuhan integrasinya.
Bagian ini memengaruhi progres lesson.
Cek pemahaman
WajibJawab duluCek pemahaman singkat
Variable mana yang aman dijadikan NEXT_PUBLIC_ pada contoh awal ini?
Progres lesson naik setelah jawaban benar.
Ringkasan
Wajib- .env.local menyimpan konfigurasi lokal dan tidak boleh di-commit.
- Variable tanpa NEXT_PUBLIC_ hanya tersedia di server secara default.
- NEXT_PUBLIC_ hanya untuk value yang memang aman terlihat di browser, bukan secret.
- Berikutnya, Uji Kompetensi akan menggabungkan loading, error, route handler, metadata, dan env pada satu route plan kecil.
Bagian ini memengaruhi progres lesson.
Langkah berikutnya
Selesaikan bagian penting lesson ini
Lanjutkan blok wajib berikutnya: Simpan konfigurasi, bukan rahasia di source code.