Vite 8 در مارس ۲۰۲۶ عرضه میشود که از یک باندلر مبتنی بر Rust به نام Rolldown و یک پارسر/مینایفایر جدید به نام Oxc بهره میبرد و زمان بیلد (build) فرانتاند را در بسیاری از پروژههای واقعی تا ده برابر کاهش میدهد. در آزمایشی که پیش از این ۴۶ ثانیه طول میکشید، همان کد اکنون در ۶ ثانیه کامپایل میشود؛ تغییری که میتواند دقایق ارزشمند از روز هر توسعهدهنده را نجات دهد.
چرا سرعت اهمیت دارد
تیمهای فرانتاند بخش قابل توجهی از اسپرینت خود را صرف بازسازی (rebuild) و جایگزینی ماژولهای داغ (HMR) میکنند. وقتی بیلد که زمانی نیم دقیقه طول میکشید به یک دقیقه میرسد، حلقههای بازخورد متوقف شده و سرعت عرضه محصول کاهش مییابد. کاهش ده برابری مستقیماً به تکرار سریعتر، تست دقیقتر و انتشار زودتر منجر میشود. برای کدهای حجیم — مثلاً دهها هزار ماژول — زمان ذخیرهشدهی تجمعی را میتوان بر حسب ساعت در هفته اندازهگیری کرد.
در Vite 8 چه چیزهای جدیدی وجود دارد
- Rolldown – یک باندلر نوشته شده با Rust که جایگزین Rollup میشود. از آنجایی که Rust به کد بومی (native) کامپایل میشود، مرحله باندلینگ بسیار سریعتر از جایگزینهای مبتنی بر JavaScript اجرا میشود.
- Oxc – یک پارسر و مینایفایر (minifier) که جایگزین esbuild میشود. این ابزار نیز به صورت یک باینری بومی عرضه میشود و سربار تجزیه (parsing) توسط JavaScript را کاهش میدهد.
- پشتیبانی بومی از مسیرهای TypeScript – نیاز به پلاگین اضافی
vite-tsconfig-pathsاز بین میرود؛ تنظیمresolve.tsconfigPaths: trueدر کانفیگ کافی است. - Full Bundle Mode – توسعهدهندگان میتوانند هنگام اجرای سرور توسعه (dev server)، از حالت باندل مشابه محیط تولید (production) استفاده کنند. این حالت زمان راهاندازی سرور توسعه را تا سه برابر کاهش میدهد و سرعت ریلود کامل صفحه را حدود ۴۰٪ افزایش میدهد.
تمام این اجزا بر روی یک زنجیره ابزار (toolchain) واحد Rust قرار دارند که شکاف بین رفتار محیط توسعه و محیط تولید را کاهش میدهد. خروجی کامپایلشدهای که سرور توسعه را تغذیه میکند، اکنون مشابه باندل تولید است و غافلگیریهای «روی سیستم من کار میکند» را کاهش میدهد.
چگونه ارتقا دهیم
- نسخه Node – Vite 8 به Node 20.0.0 یا نسخههای جدیدتر نیاز دارد.
- پکیج Vite – دستور
npm install vite@latest @vitejs/plugin-react@latestرا اجرا کنید. - پاکسازی پلاگینها – پلاگین
vite-tsconfig-pathsرا حذف کرده و آن را باresolve.tsconfigPaths: trueجایگزین کنید. - جایگزینی Babel – پلاگین بهروزرسانیشدهی
@vitejs/plugin-reactاکنون از Oxc استفاده میکند که جایگزینی کوچکتر و سریعتر برای Babel است.
اگر Full Bundle Mode را میخواهید، این پرچم (flag) را به کانفیگ توسعه خود اضافه کنید:
export default defineConfig({
dev: {
bundleMode: true,
},
});
لایه سازگاری Rolldown بیشتر گزینههای Rollup را پوشش میدهد، بنابراین فایلهای پیکربندی موجود معمولاً بدون تغییر پس از ارتقا باقی میمانند. یک بیلد موفق پس از این مراحل نشاندهنده تکمیل فرآیند مهاجرت است.
تأثیر بر پروژههای بزرگ
در مونورپوها (monorepos) یا اپلیکیشنهایی با کتابخانههای جانبی گسترده، سرور توسعه اغلب به یک گلوگاه تبدیل میشود. سرعت راهاندازی سه برابری در Full Bundle Mode به این معناست که مشارکتکنندگان جدید میتوانند محیط محلی خود را در کسری از زمان قبلی راهاندازی کنند. ریلودهای کامل ۴۰٪ سریعتر، باعث میشود حلقه «رفرش و تست» حتی زمانی که تغییری در بسیاری از ماژولها ایجاد میشود، سریع و دقیق باقی بماند.
از آنجایی که باندلر و پارسر باینریهای بومی هستند، حجم نصب اولیه در مقایسه با پشته (stack) تمامجاوااسکریپتی افزایش مییابد. اجراکنندههای CI که با محدودیت فضای دیسک مواجه هستند، ممکن است به افزایش اندکی در فضای ذخیرهسازی اختصاصیافته نیاز داشته باشند. علاوه بر این، برخی از پلاگینهای خاص Rollup که به ساختارهای داخلی JavaScript متکی هستند، ممکن است با ناسازگاریهای موردی مواجه شوند که نیازمند بررسی کوتاهی پس از ارتقا است.
مواردی که باید در ادامه زیر نظر داشت
- ابزارهای جامعه کاربری – نویسندگان پلاگین شروع به انتشار نسخههای سازگار با Rust کردهاند. زیر نظر داشتن اکوسیستم به جلوگیری از غافلگیریها کمک میکند.
- معیارهای عملکرد – کاربران اولیه در حال انتشار مجموعههای بنچمارک هستند. مقایسه این اعداد با مخزن (repo) خودتان تأیید میکند که آیا بهبودهای ده تا سی برابری ادعا شده برای بار کاری (workload) خاص شما نیز صادق است یا خیر.
- انتشار نسخههای آینده Vite – تیم توسعه به ادغام عمیقتر با Rust فراتر از باندلینگ اشاره کرده است که میتواند شکاف بین محیط توسعه و تولید را بیش از پیش کاهش دهد.
جمعبندی
هسته مبتنی بر Rust در Vite 8 یک افزایش سرعت ملموس را ارائه میدهد که ریتم روزانه توسعه فرانتاند را تغییر میدهد. برای تیمهایی که با بازسازیهای کند دستوپنجه نرم میکنند، مسیر ارتقا ساده و پاداش عملکردی آن فوری است. هزینههای جانبی — باینریهای بزرگتر و بررسی کوتاه پلاگینها — در مقایسه با زمان ذخیرهشده در هر بیلد، ناچیز هستند. اگر زمان بیلد پروژه شما همچنان کُند به نظر میرسد، مهاجرت به Vite 8 راهی عملی برای حذف این اصطکاک از جریان کاری است.
