Dark mode
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 แบบดั้งเดิมและนำเสนอวิธีการใหม่ที่มีประสิทธิภาพมากขึ้น
คุณสมบัติ | |||
---|---|---|---|
เวลาเริ่ม Dev Server | ทันที (<1 วินาที) | ช้า (10-30 วินาที) | เร็ว (1-3 วินาที) |
ความเร็ว HMR | เร็วมาก (<50ms) | ปานกลาง (>300ms) | เร็ว (<100ms) |
เครื่องมือ Build | Rollup (มีประสิทธิภาพ) | Webpack (เสถียร) | Rust-based (เร็ว) |
การตั้งค่า | ง่าย | ซับซ้อน | ปานกลาง |
ระบบนิเวศ | เติบโตเร็ว | ใหญ่มาก | กำลังเติบโต |
การเรียนรู้ | ง่าย | ยาก | ปานกลาง |
การใช้หน่วยความจำ | ต่ำ | สูง | ปานกลาง |
การพัฒนา Plugin | ง่าย | ซับซ้อน | ปานกลาง |
รองรับเบราว์เซอร์ | เบราว์เซอร์สมัยใหม่ | ทุกเบราว์เซอร์ | เบราว์เซอร์สมัยใหม่ |
ผลลัพธ์ Production | ประสิทธิภาพสูงมาก | ประสิทธิภาพดี | ประสิทธิภาพสูง |
ทำไม ESM ถึงดีกว่า
ทำงานโดยตรงบนเบราว์เซอร์
- ไม่ต้องแปลงโค้ดในขั้นตอน development
- ลดเวลาในการ build และ reload
ประสิทธิภาพสูง
- โหลดเฉพาะโมดูลที่ใช้งาน
- รองรับ tree-shaking โดยธรรมชาติ
โค้ดที่สะอาดกว่า
- Syntax ที่เป็นมาตรฐาน
- ไม่ต้องใช้ require หรือ define :::
Vite ทำงานอย่างไร
Vite ทำงานด้วยแนวคิดที่แตกต่างจากเครื่องมือ build แบบเดิม โดยแบ่งการทำงานเป็น 2 โหมดหลัก:
Development Mode
Native ESM
- ใช้ ESM ของเบราว์เซอร์โดยตรง
- ไม่ต้อง bundle ในขั้นตอนพัฒนา
- Dev server เริ่มทำงานได้ทันที
On-Demand Transform
- แปลงไฟล์เฉพาะที่ถูกเรียกใช้
- Cache ผลลัพธ์เพื่อความเร็ว
- HMR ทำงานได้เร็วเพราะไม่ต้อง rebuild ทั้งหมด
Production Mode
Pre-bundling
- รวม dependencies เป็น bundle เดียว
- ลดจำนวน HTTP requests
- Optimize โค้ดให้เล็กลง
Build Process
- ใช้ Rollup สำหรับ production build
- Code splitting อัตโนมัติ
- Minification และ Tree-shaking
- สร้างไฟล์ static ที่พร้อมใช้งาน