ประกาศ Rolldown-Vite — การนำบันเดลเลอร์ความเร็วสูงพิเศษที่พัฒนาด้วย Rust มาใช้เป็นทางการใน Vite
(voidzero.dev)- Rolldown คือบันเดลเลอร์ยุคถัดไปที่พัฒนาด้วย Rust และ มีแผนจะกลายเป็นบันเดลเลอร์เริ่มต้นของ Vite โดยตอนนี้สามารถทดลองใช้ล่วงหน้าได้ผ่านแพ็กเกจ
rolldown-vite - กำลังพัฒนาโดยมีเป้าหมายให้ เข้ากันได้กับ Vite เดิมอย่างสมบูรณ์ และได้พิสูจน์ผลลัพธ์ในการใช้งานจริงแล้วว่าในโปรเจกต์ขนาดใหญ่สามารถ เพิ่มความเร็วการบิลด์ได้ 3~16 เท่า และลดการใช้หน่วยความจำได้สูงสุด 100 เท่า
- ลดการพึ่งพา esbuild และใช้ Oxc (ชุดเครื่องมือ JS ประสิทธิภาพสูง) เพื่อให้การ transpile และการปรับแต่งให้เหมาะสมทำได้เร็วและสม่ำเสมอยิ่งขึ้น
- เน้นที่การ รองรับความเข้ากันได้กับ Vite รวมถึงปลั๊กอินและเฟรมเวิร์กหลัก โดยในบางกรณีการใช้งานขั้นสูง แนะนำให้อ้างอิง คู่มือการย้ายระบบ
- มีแผนจะรวมเข้ากับโค้ดเบสหลักของ Vite แบบเป็นขั้นตอน และวางแผนเปลี่ยนผ่านอย่างค่อยเป็นค่อยไปผ่าน ฟีดแบ็กจากคอมมูนิตี้และประสบการณ์ใช้งานจริง
ประกาศ Rolldown-Vite
ภาพรวมและผลลัพธ์จากการนำมาใช้
- Rolldown คือบันเดลเลอร์สมัยใหม่ที่สร้างด้วย Rust เป็นเอนจินรุ่นถัดไปที่จะมาแทนบันเดลเลอร์ JS/TS เดิมของ Vite
- ในโปรเจกต์ Vite เดิมสามารถสลับจากแพ็กเกจ
viteมาใช้rolldown-viteได้อย่างง่ายดาย - กรณีใช้งานจริงในองค์กรพิสูจน์แล้วว่ามีประสิทธิภาพโดดเด่น เช่น ลดเวลาบิลด์ได้ 3~16 เท่า และลดการใช้หน่วยความจำได้ 4~100 เท่า
เทคโนโลยีหลักและการย้ายระบบ
- Oxc: มาพร้อม toolchain JS/TS ประสิทธิภาพสูงในตัว เช่น parser, transpiler, resolver, minifier และมีแผนเพิ่ม formatter ในอนาคต
- คง API และรูปแบบการใช้งานแบบเดียวกับ Vite เดิม แต่จำเป็นต้องตั้งค่า alias หรือ override ตาม package manager ที่ใช้งาน
esbuildไม่จำเป็นอีกต่อไป โดย การแปลงภายในและการปรับแต่งทั้งหมดจะประมวลผลด้วย Oxc (แต่อาจเลือกใช้ esbuild บางส่วนได้เพื่อความเข้ากันได้กับปลั๊กอิน)
ผลลัพธ์จากการใช้งานจริง
- GitLab: เวลาบิลด์ 2.5 นาที → 40 วินาที, ลดการใช้หน่วยความจำ 100 เท่า
- Excalidraw: 22.9 วินาที → 1.4 วินาที (เร็วขึ้น 16 เท่า)
- PLAID Inc.: 1 นาที 20 วินาที → 5 วินาที (เร็วขึ้น 16 เท่า)
- Appwrite: 12 นาที → 3 นาที (ลดหน่วยความจำ 4 เท่า)
- Particl: 1 นาที → 6 วินาที (ดีขึ้นมากกว่า 10 เท่า, และเร็วกว่า Next.js 29 เท่า)
- แม้แต่การบิลด์บล็อกจริง (VitePress + Rolldown-Vite) บน Netlify ก็ใช้เวลาเพียง 1.8 วินาที
ความเข้ากันได้และการรองรับปลั๊กอิน
- ผ่านการทดสอบกับเฟรมเวิร์กและปลั๊กอินหลักส่วนใหญ่ด้วย Vite ecosystem CI
- ในบางเฟรมเวิร์กเฉพาะทางหรือเคสขั้นสูง อาจเกิดปัญหาความเข้ากันได้ → แนะนำให้อ้างอิง คู่มือการย้ายระบบ
- ผู้พัฒนาปลั๊กอินสามารถทดสอบความเข้ากันได้และปรับแต่งให้เหมาะสมในสภาพแวดล้อม Rolldown-Vite ได้ทันที
โรดแมปการผสานรวมแบบเป็นขั้นตอน
- ระยะที่ 1 (ปัจจุบัน): เปิดให้ทดลองใช้งานและเก็บฟีดแบ็กผ่านแพ็กเกจแยก (
rolldown-vite) - ระยะที่ 2: merge เข้าสู่โค้ดเบสหลักของ Vite, เพิ่มโหมด full-bundle ของ development server แบบ opt-in และมีแผนยุติแพ็กเกจ
rolldown-vite - ระยะที่ 3: โหมด full-bundle จะเปลี่ยนเป็นค่าเริ่มต้นของ Vite
- แต่ละระยะคาดว่าจะใช้เวลาหลายเดือน และจะค่อย ๆ เดินหน้าตามการใช้งานจริงและฟีดแบ็กจากคอมมูนิตี้
แผนในอนาคตและวิธีมีส่วนร่วม
- มีแผนนำ โหมด full-bundle มาใช้ใน development server เพื่อเพิ่มความเร็วและเสถียรภาพในการพัฒนาสำหรับโปรเจกต์ขนาดใหญ่ให้สูงสุด
- ส่วนแกนหลักภายในของ Vite ก็จะค่อย ๆ เปลี่ยนไปใช้ Rust เช่นกัน (เพื่อลด communication overhead และเพิ่มประสิทธิภาพสูงสุด)
- บั๊ก ปัญหาความเข้ากันได้ และฟีดแบ็กด้านประสิทธิภาพ แนะนำให้รายงานไปที่
rolldown-viterepository - สามารถพูดคุยแบบเรียลไทม์ได้ที่ Rolldown Discord
ยังไม่มีความคิดเห็น