𝗗𝗲𝗳𝗶𝗻𝗲 𝗢𝗻𝗰𝗲, 𝗧𝗿𝘂𝘀𝘁 𝗘𝘃𝗲𝗿𝘆𝘄𝗵𝗲𝗿𝗲
CtroEnv menggunakan empat kilang validator teras untuk memastikan pemboleh ubah persekitaran anda selamat.
Begini cara ia berfungsi:
string() untuk teks Gunakan ini untuk URL, e-mel, dan port. Anda boleh menyambung peraturan seperti .min() atau .max() untuk menetapkan had panjang.
number() untuk nilai numerik Ini menukar string seperti "3000" kepada nombor sebenar. Anda boleh mewajibkan integer atau nilai positif.
boolean() untuk benar atau palsu Ini mengendalikan flag ciri. Ia menukar "true", "1", atau "false" kepada boolean sebenar.
pick() untuk set tertentu Gunakan ini untuk mengehadkan nilai kepada senarai. Sebagai contoh, anda boleh memaksa NODE_ENV hanya menjadi "development", "staging", atau "production". Jika anda tersilap eja, ralat akan mencadangkan ejaan yang betul.
Alatan berguna untuk setiap validator:
• .default(value) - Menetapkan nilai sandaran jika pemboleh ubah hilang. • .optional() - Membenarkan pemboleh ubah menjadi undefined. • .secret() - Menutup data sensitif dalam log anda. • .describe(text) - Menambah dokumentasi untuk mesej ralat anda. • .validate(fn) - Membolehkan anda menulis logik tersuai untuk peraturan sekali guna.
CtroEnv berfungsi merentasi pelbagai persekitaran:
- Node.js: Gunakan nodeSource() atau loadEnv() untuk membaca fail .env.
- Vite: Gunakan vitePlugin untuk menggagalkan binaan anda jika pemboleh ubah tidak sah.
- Next.js: Gunakan sokongan terbina dalam untuk memisahkan pemboleh ubah pelayan dan klien. Ini menghalang anda daripada mendedahkan rahsia ke pelayar secara tidak sengaja.
Apabila pengesahan gagal, CtroEnv tidak hanya berhenti. Ia mengumpul setiap ralat dan memaparkan semuanya sekaligus. Anda akan mendapat senarai yang jelas tentang apa yang hilang, apa yang mempunyai jenis yang salah, dan apa yang gagal dalam peraturan tersuai anda.
Ini memastikan konfigurasi anda tidak boleh diubah dan masa larian anda boleh diramal.
Sumber: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl