- เครื่องมือจัดการตัวแปรสภาพแวดล้อมยุคถัดไป ที่ก้าวข้ามข้อจำกัดของแนวทาง .env/.env.example แบบเดิม แก้ปัญหาเรื่องการทำงานร่วมกัน, AI, ความปลอดภัย และ type safety ได้ในครั้งเดียว
- จัดการสคีมาของตัวแปรสภาพแวดล้อมไว้ในที่เดียวด้วย
.env.schema จึงไม่ต้องกังวลเรื่องค่าจริงกับตัวอย่างใน .env.example ไม่ตรงกัน
- เพิ่มข้อมูลแบบประกาศลงในไฟล์ .env ได้หลากหลายผ่าน คอมเมนต์เดคอเรเตอร์ @env-spec เช่น สคีมา, ประเภทข้อมูล, การตรวจสอบความถูกต้อง, ตัวอย่าง, ระดับความอ่อนไหว, การจัดการความลับภายนอก
@required, @type=string, @sensitive, @example เป็นต้น
- การตรวจสอบความถูกต้องที่ทรงพลัง: แจ้งข้อผิดพลาดจากการตั้งค่าที่ไม่ถูกต้องหรือค่าที่ขาดหายด้วยข้อความที่ชัดเจนทันที (ป้องกันล่วงหน้าก่อนรันไทม์)
- สร้าง type อัตโนมัติตามสคีมา ช่วยให้การเข้าถึงตัวแปรสภาพแวดล้อมในโค้ดมี type safety และรองรับ IDE IntelliSense
- ความปลอดภัย: ปิดบังข้อมูลอ่อนไหวอัตโนมัติ (ใน log/console) และตรวจจับการรั่วไหลใน bundled client/response
- หลายสภาพแวดล้อมและการ override: รองรับการตั้งค่าสภาพแวดล้อมที่ซับซ้อน เช่น ค่าเริ่มต้น, ไฟล์แยกตามสภาพแวดล้อม, ค่าส่วนตัวที่ถูก git-ignore และการรวมกับ process env
- การผสานรวมความลับภายนอก: โหลดซีเคร็ตแบบไดนามิกผ่านคำสั่งอย่าง 1Password, exec และมีแผนรองรับปลั๊กอิน, การเข้ารหัสในเครื่อง และ team vault เร็ว ๆ นี้
- ไม่ยึดติดกับภาษา/รันไทม์: ใช้ได้ไม่เฉพาะกับ JS/TS แต่รวมถึงทุกภาษาและทุกโปรเซส เช่น
varlock run -- python my.py เพื่อ inject validated env ได้
- แทนที่ dotenv ได้อย่างสมบูรณ์: เพียงเปลี่ยนจากการ import dotenv มาใช้ varlock ก็ใช้งานความสามารถอย่างการตรวจสอบความถูกต้องทันที, การสร้าง type อัตโนมัติ, การเสริมความปลอดภัย และการผสานรวมหลายสภาพแวดล้อม/ซีเคร็ตได้ทันที
2 ความคิดเห็น
ถ้าอย่างนั้นหมายความว่าต้องใส่
.env.schemaไว้ใน.gitignoreด้วยใช่ไหม?อ๋อ.. หมายถึงเก็บข้อมูลไว้ใน
.envแล้วให้.env.schemaเป็นฝ่ายอ่านเข้ามาสินะ