API key ကို Git ထဲမတင်ရုံနဲ့ မလုံလောက်ပါဘူး။ NEXT_PUBLIC_ prefix ထည့်လိုက်တဲ့ variable ဟာ browser bundle ထဲဝင်နိုင်တာကြောင့် secret မဖြစ်တော့ပါဘူး။ Variable ဘယ်မှာသုံးမလဲကို အရင်ဆုံးခွဲရပါတယ်။
နားလည်ထားရမယ့် အချက်
.env.local က local secret အတွက်ဖြစ်ပြီး commit မလုပ်သင့်ပါဘူး။ Server မှာပဲသုံးမယ့် DATABASE_URL ကို prefix မထည့်ဘဲထားပါ။ Browser မှာလိုတဲ့ public analytics id လိုဟာကိုသာ NEXT_PUBLIC_ သုံးပါ။ Missing variable ကြောင့် runtime အလယ်မှာ crash မဖြစ်အောင် app စတင်ချိန် validation လုပ်ပါ။ ထို့အပြင် user input validation၊ output escaping၊ security headers၊ CSP၊ HTTPS နဲ့ dependency security patch များကို production checklist ထဲထည့်ပါ။
အတူတူ စမ်းရေးကြည့်မယ်
// .env.local (Git ထဲမထည့်ပါနှင့်)
DATABASE_URL="postgres://..."
NEXT_PUBLIC_APP_NAME="Myanmar Notes"
// lib/env.ts
import "server-only";
const databaseUrl = process.env.DATABASE_URL;
if (!databaseUrl) throw new Error("DATABASE_URL is required");
export const env = { databaseUrl };
// .env.example
DATABASE_URL=
NEXT_PUBLIC_APP_NAME=Myanmar NotesCode က ဘယ်လိုအလုပ်လုပ်သလဲ
env helper က DATABASE_URL မရှိတာကို စောစောပစ်ပေးပါတယ်။ Client Component က ဒီ module ကို import မလုပ်ရပါဘူး။ .env.example မှာ key name သာထားပြီး တန်ဖိုးအစစ်မထားပါ။
Secret သည် server မှာသာရှိပြီး environment မပြည့်စုံလျှင် startup အချိန်မှာရှင်းလင်းသော error ပေါ်မည်။၅ မိနစ် စမ်းကြည့်
မိမိ project ရဲ့ environment variables ကို public/server နှစ်စုခွဲပြီး .env.example တစ်ခုဖန်တီးပါ။
Next.js — Environment Variables — Next.js