Skip to content

Vite คืออะไร

Vite เป็นเครื่องมือสำหรับการพัฒนาและ build โปรแกรม JavaScript สมัยใหม่ที่ถูกพัฒนาโดยทีม Vue.js โดยมีจุดเด่นดังนี้:

  • เป็น Build Tool ที่ทำงานได้เร็วกว่าเครื่องมืออื่นๆ
  • ใช้ ESM (ES Modules) ในการพัฒนา
  • รองรับ Hot Module Replacement (HMR)
  • สามารถใช้ได้กับ Framework ยอดนิยมเช่น React, Vue, Svelte
  • มี Plugin ระบบที่ยืดหยุ่น
  • ใช้ Rollup สำหรับการ Build Production

ทำไมต้อง Vite

Vite แก้ปัญหาที่พบในเครื่องมือ build แบบดั้งเดิมและนำเสนอวิธีการใหม่ที่มีประสิทธิภาพมากขึ้น

คุณสมบัติvitejs.dev faviconVitewebpack.js.org faviconWebpackwww.rspack.dev faviconRspack
เวลาเริ่ม Dev Serverทันที (<1 วินาที)ช้า (10-30 วินาที)เร็ว (1-3 วินาที)
ความเร็ว HMRเร็วมาก (<50ms)ปานกลาง (>300ms)เร็ว (<100ms)
เครื่องมือ BuildRollup (มีประสิทธิภาพ)Webpack (เสถียร)Rust-based (เร็ว)
การตั้งค่าง่ายซับซ้อนปานกลาง
ระบบนิเวศเติบโตเร็วใหญ่มากกำลังเติบโต
การเรียนรู้ง่ายยากปานกลาง
การใช้หน่วยความจำต่ำสูงปานกลาง
การพัฒนา Pluginง่ายซับซ้อนปานกลาง
รองรับเบราว์เซอร์เบราว์เซอร์สมัยใหม่ทุกเบราว์เซอร์เบราว์เซอร์สมัยใหม่
ผลลัพธ์ Productionประสิทธิภาพสูงมากประสิทธิภาพดีประสิทธิภาพสูง

ทำไม ESM ถึงดีกว่า

  1. ทำงานโดยตรงบนเบราว์เซอร์

    • ไม่ต้องแปลงโค้ดในขั้นตอน development
    • ลดเวลาในการ build และ reload
  2. ประสิทธิภาพสูง

    • โหลดเฉพาะโมดูลที่ใช้งาน
    • รองรับ tree-shaking โดยธรรมชาติ
  3. โค้ดที่สะอาดกว่า

    • Syntax ที่เป็นมาตรฐาน
    • ไม่ต้องใช้ require หรือ define :::

Vite ทำงานอย่างไร

Vite ทำงานด้วยแนวคิดที่แตกต่างจากเครื่องมือ build แบบเดิม โดยแบ่งการทำงานเป็น 2 โหมดหลัก:

Development Mode

  1. Native ESM

    • ใช้ ESM ของเบราว์เซอร์โดยตรง
    • ไม่ต้อง bundle ในขั้นตอนพัฒนา
    • Dev server เริ่มทำงานได้ทันที
  2. On-Demand Transform

    • แปลงไฟล์เฉพาะที่ถูกเรียกใช้
    • Cache ผลลัพธ์เพื่อความเร็ว
    • HMR ทำงานได้เร็วเพราะไม่ต้อง rebuild ทั้งหมด

Production Mode

  1. Pre-bundling

    • รวม dependencies เป็น bundle เดียว
    • ลดจำนวน HTTP requests
    • Optimize โค้ดให้เล็กลง
  2. Build Process

    • ใช้ Rollup สำหรับ production build
    • Code splitting อัตโนมัติ
    • Minification และ Tree-shaking
    • สร้างไฟล์ static ที่พร้อมใช้งาน