• 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. ระยะที่ 1 (ปัจจุบัน): เปิดให้ทดลองใช้งานและเก็บฟีดแบ็กผ่านแพ็กเกจแยก (rolldown-vite)
  2. ระยะที่ 2: merge เข้าสู่โค้ดเบสหลักของ Vite, เพิ่มโหมด full-bundle ของ development server แบบ opt-in และมีแผนยุติแพ็กเกจ rolldown-vite
  3. ระยะที่ 3: โหมด full-bundle จะเปลี่ยนเป็นค่าเริ่มต้นของ Vite
  • แต่ละระยะคาดว่าจะใช้เวลาหลายเดือน และจะค่อย ๆ เดินหน้าตามการใช้งานจริงและฟีดแบ็กจากคอมมูนิตี้

แผนในอนาคตและวิธีมีส่วนร่วม

  • มีแผนนำ โหมด full-bundle มาใช้ใน development server เพื่อเพิ่มความเร็วและเสถียรภาพในการพัฒนาสำหรับโปรเจกต์ขนาดใหญ่ให้สูงสุด
  • ส่วนแกนหลักภายในของ Vite ก็จะค่อย ๆ เปลี่ยนไปใช้ Rust เช่นกัน (เพื่อลด communication overhead และเพิ่มประสิทธิภาพสูงสุด)
  • บั๊ก ปัญหาความเข้ากันได้ และฟีดแบ็กด้านประสิทธิภาพ แนะนำให้รายงานไปที่ rolldown-vite repository
  • สามารถพูดคุยแบบเรียลไทม์ได้ที่ Rolldown Discord

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น