Skip to content
Grok

Environment Variables and Modes

Built-in Constants

Vite จัดเตรียมค่าคงที่ต่างๆ ที่สามารถใช้ได้ในทุกสภาพแวดล้อม:

ค่าคงที่ประเภทคำอธิบาย
import.meta.env.MODEstringโหมดที่แอปกำลังทำงานอยู่ (เช่น 'development', 'production')
import.meta.env.BASE_URLstringURL base ที่ใช้ในการเสิร์ฟแอป กำหนดโดยตัวเลือกการตั้งค่า base
import.meta.env.PRODbooleanแสดงว่าแอปกำลังทำงานในโหมด production หรือไม่ (เมื่อรันเซิร์ฟเวอร์การพัฒนาด้วย NODE_ENV='production' หรือรันแอปที่ build ด้วย NODE_ENV='production')
import.meta.env.DEVbooleanแสดงว่าแอปกำลังทำงานในโหมด development หรือไม่ (มักจะตรงข้ามกับ import.meta.env.PROD เสมอ)
import.meta.env.SSRbooleanแสดงว่าแอปกำลังทำงานบน server หรือไม่

Environment Variables

Loading Env Files

ไฟล์ environmentโหลดเมื่อไหร่รวมในระบบควบคุมเวอร์ชัน
.envโหลดในทุกกรณีใช่
.env.localโหลดในทุกกรณีไม่
.env.[mode]โหลดเฉพาะโหมดที่ระบุใช่
.env.[mode].localโหลดเฉพาะโหมดที่ระบุไม่

Variable Naming Rules

  • ตัวแปรสภาพแวดล้อมที่โหลดจะถูกแสดงผ่าน import.meta.env
  • ตัวแปรที่ขึ้นต้นด้วย VITE_ เท่านั้นที่จะถูกส่งไปยังโค้ดฝั่งไคลเอนต์
  • ใช้ VITE_ สำหรับตัวแปรที่ต้องการใช้งานในฝั่งไคลเอนต์
bash
VITE_API_URL=https://api.example.com
SECRET_KEY=mysecret  # ไม่สามารถเข้าถึงได้ในฝั่งไคลเอนต์
javascript
// ในโค้ดแอป
console.log(import.meta.env.VITE_API_URL); // ใช้งานได้
console.log(import.meta.env.SECRET_KEY); // undefined

Modes

Default Modes

โหมดคำสั่งคุณสมบัติหลักการ optimize
developmentvite หรือ vite devมี HMR, ไม่มีการ optimizeไม่มี
productionvite buildมีการ optimize และ minify, มี source mapsมี

Custom Modes

คำสั่งตัวอย่างไฟล์ environment ที่เกี่ยวข้องตัวอย่างการใช้ในโค้ด
vite --mode staging.env.stagingimport.meta.env.VITE_API_URL
vite --mode test.env.testimport.meta.env.VITE_TEST_MODE

TypeScript Support

Type Definition for Env Variables

สร้างไฟล์ env.d.ts ในโฟลเดอร์ src เพื่อเพิ่ม type definition:

typescript
/// <reference types="vite/client" />

interface ImportMetaEnv {
  readonly VITE_API_URL: string;
  // เพิ่มตัวแปร environment อื่นๆ ที่ใช้ในแอป
}

interface ImportMeta {
  readonly env: ImportMetaEnv;
}

IntelliSense

เมื่อเพิ่ม type definition แล้ว IDE จะแสดง IntelliSense สำหรับตัวแปร environment:

typescript
console.log(import.meta.env.VITE_API_URL); // IDE จะแสดง type เป็น string