webpack-dev-server 6 منتشر شد
خلاصهٔ کاملتر
نسخهٔ ۶ webpack-dev-server منتشر شده و همونطور که تو یادداشت انتشارش اومده، یه نسخهٔ major با تعداد زیادی تغییر شکنندهست. مهمترینهاش اینن: Express رفته روی نسخهٔ ۵، بازهٔ peer dependency مربوط به webpack از ^5.0.0 به ^5.101.0 رسیده و پشتیبانی از نسخههای Node.js پایینتر از 22.15.0 قطع شده.
بزرگترین تغییر ساختاری، مهاجرت سورس به ES Module بومیه. فیلد type تو package.json همچنان روی module میمونه، ولی حالا پکیج از طریق فیلد exports هر دو بیلد رو بیرون میده: مصرفکنندههای ESM مستقیم lib/ رو import میکنن و مصرفکنندههای CommonJS یه بیلد ترنسپایلشده تو dist/ رو require() میکنن. اینجوری هر دو دنیا بدون تکیه بر require کردن ESM کار میکنن.
لیست حذفها هم بلنده. فلگهای CLI کلاً رفتن و بهجاشون باید از دستور serve توی webpack-cli همراه یه فایل کانفیگ یا API برنامهنویسی استفاده کنی. متدهای استاتیک internalIP و internalIPSync، گزینهٔ bypass تو کانفیگ پراکسی (جایگزینش router یا context از http-proxy-middleware)، پشتیبانی SockJS (فقط ترنسپورت ws مونده) و وابستگی spdy (بهجاش node:http2) هم حذف شدن.
در عوض چند قابلیت تازه اضافه شده. مهمترینش پشتیبانی از پلاگینه: حالا میشه خود dev-server رو بهعنوان یه پلاگین webpack به کار برد تا با چرخهٔ عمر کامپایلر یکی بشه، بدون اینکه کامپایلر رو دستی پاس بدی. این کار جلوی چند بار استارت شدن سرور موقع ریکامپایل رو میگیره، خاموش شدن تمیز رو تضمین میکنه و از MultiCompiler هم پشتیبانی میکنه. میدلور فشردهسازی روی HTTP/2 هم فعال شده و وابستگی colorette به نفع رنگآمیزی ANSI بومی کنار رفته.
یه اصلاح امنیتی هم توی این نسخه هست. اندپوینتهای داخلی open-editor و invalidate قبلاً با هر درخواست GET کار حالتتغییردهنده انجام میدادن — باز کردن یه فایل تو ادیتور یا مجبور کردن پروژه به ریکامپایل — پس هر صفحهای که توسعهدهنده باز میکرد میتونست اونها رو صدا بزنه. حالا فقط درخواست هممبدأ قبول میشه که با هدر Sec-Fetch-Site و در نبودش با Origin/Host بررسی میشه.
نکات کلیدی:
- Express به نسخهٔ ۵ و webpack به ^5.101.0 ارتقا پیدا کردن؛ Node.js زیر 22.15.0 دیگه پشتیبانی نمیشه
- سورس به ESM بومی منتقل شده و پکیج همزمان بیلد ESM و CommonJS ارائه میده
- فلگهای CLI، SockJS، spdy، bypass و متدهای internalIP حذف شدن
- dev-server حالا میتونه بهعنوان پلاگین webpack کار کنه و از MultiCompiler پشتیبانی میکنه
- اندپوینتهای open-editor و invalidate دیگه فقط درخواست هممبدأ رو قبول میکنن




