Rspack 2.2 با HMR سبکتر و خروجی کوچیکتر
خلاصهٔ کاملتر
تیم Rspack نسخهٔ ۲.۲ این باندلر رو منتشر کرده. باندلر یعنی ابزاری که کدهای پراکندهٔ پروژه رو به چند فایل نهایی برای مرورگر تبدیل میکنه. تو اعلامیهٔ رسمی اومده که این نسخه بیشتر از ۳۰ بهینهسازی عملکردی داره: زمان بیلد production تو بنچمارک خودشون حدود ۵ درصد کم شده (از ۱۸۲۲ به ۱۷۲۵ میلیثانیه)، پارس CSS داخلی تا ۳.۷ برابر سریعتر شده و حجم بیلد Wasm از ۲۹.۵ به ۲۸.۴ مگابایت رسیده.
ملموسترین تغییر برای کسی که روزانه کد میزنه، مربوط به HMRه؛ یعنی همون بهروزرسانی لحظهای کد بدون رفرش کل صفحه. قبلاً حتی با یه تغییر صرفاً جاوااسکریپتی، مرورگر فایلهای CSS مرتبط رو هم میگرفت تا ببینه استایلی عوض شده یا نه، برای همین هرچی استایلشیت سنگینتر بود هاتآپدیت کندتر میشد. حالا Rspack موقع بیلد خودش تشخیص میده CSS تغییر کرده یا نه. روی یه استایلشیت ۴.۱ مگابایتی، زمان از حدود ۳۸۵ میلیثانیه به ۶ میلیثانیه رسیده.
یه استراتژی تازه هم برای نامگذاری ماژولها و chunkها اضافه شده به اسم compact-hashed که کوتاهترین پیشوند ممکن رو از یه هش پایدار برمیداره. نسبت به deterministic تو یه پروژهٔ واقعی، حجم JS مینیفایشده ۸۴.۶ کیلوبایت و بعد از gzip حدود ۶۱.۶ کیلوبایت (۰.۸۷ درصد) کم شده. روشن کردنش دو خط تنظیماته:
export default {
optimization: {
chunkIds: 'compact-hashed',
moduleIds: 'compact-hashed',
},
};بقیهٔ اکوسیستم هم همزمان آپدیت شده. تو Rsbuild 2.2 تقسیم chunk برای بیلدهای Node.js پیشفرض روشنه و ماژولهای مشترک رو جدا میکشه بیرون. یه کاربر TanStack Start گزارش داده که حجم خروجی سرورش از ۲۹۸ مگابایت به ۴.۱ مگابایت و مصرف حافظهش از ۴۸۶ به ۱۲۹ مگابایت رسیده. Rstest هم حالا تست E2E با Playwright و تست ماژولهای واقعی Module Federation رو پشتیبانی میکنه، و Rslint بیشتر از ۵۰۰ قانون داخلی داره و همهٔ قوانین و پریستهای @typescript-eslint رو پیاده کرده.
چند تغییر کوچیکتر ولی کاربردی: متغیرهای مخصوص Rspack حالا از راه import.meta در دسترسن (مثلاً import.meta.rspackPublicPath بهجای webpack_public_path)، Browserslist کوئریهای Baseline رو قبول میکنه تا بهجای شمردن نسخهٔ مرورگرها بشه بر اساس مجموعهویژگیهای پایدار هدفگذاری کرد، و باینری native برای RISC-V ۶۴ بیتی، ppc64le و s390x هم اومده تا روی این پلتفرمها دیگه به Wasm عقبنشینی نکنه.
نکات کلیدی:
- بیش از ۳۰ بهینهسازی؛ بیلد production حدود ۵ درصد سریعتر (۱۸۲۲ به ۱۷۲۵ میلیثانیه)
- هاتآپدیت جاوااسکریپت با استایلشیت ۴.۱ مگابایتی از ۳۸۵ به ۶ میلیثانیه رسید
- استراتژی compact-hashed برای moduleIds و chunkIds؛ ۰.۸۷ درصد کاهش حجم بعد از gzip
- Rsbuild 2.2: split chunks پیشفرض برای Node.js و پشتیبانی از Solid v2 RC با کامپایلر Rust
- Rslint به بیش از ۵۰۰ قانون رسید و کل پریستهای @typescript-eslint رو پوشش میده
- باینری native برای linux-riscv64، ppc64le و s390x اضافه شد




