ค้นหาเว็บไซต์

Visual Studio Code - ปลั๊กอิน Rollup replace กับ TypeScript ไม่สามารถหาชื่อตัวแปรได้


ฉันกำลังใช้ @rollup/plugin-replace เพื่อใช้ dotenv ใน Svelte.

เมื่อฉันแทนค่าตัวแปรดังนี้,

replace({
  preventAssignment: true,
  DATABASE_URL: JSON.stringify(process.env.SUPABASE_URL),
})

และใช้ข้างต้นใน main.ts มันไม่สามารถหาตัวแปรได้แต่พิมพ์ได้ดีในคอนโซล

ค่า DATABASE_URL จริงๆ แล้วมีอยู่ มันเป็นแค่ข้อผิดพลาดของ TypeScript เท่านั้น ฉันจะแก้ไขเรื่องนี้ได้อย่างไร?

คำตอบ #1

replace จะทำการค้นหาและแทนที่สตริงอย่างตรงตัว ดังนั้นหากคุณกำหนดการตั้งค่าของคุณแบบ:

replace({
  preventAssignment: true,
  DATABASE_URL: process.env.SUPABASE_URL,
})

คุณควรจัดการ DATABASE_URL ในโค้ดของคุณเหมือนเป็นค่าหนึ่ง (เช่น ไม่ใช่ตัวแปร) ดังนั้น:

const url = "DATABASE_URL";
connect(url, ...);