انتظار چه چیزی را در Webpack 5 داشته باشیم؟

ترجمه و تالیف : عرفان کاکایی
تاریخ انتشار : 13 خرداد 98
خواندن در 1 دقیقه
دسته بندی ها : جاوا اسکریپت

اخیرا تیم پشت Webpack تمام بروزرسانی‌هایی که در نسخه آینده، یعنی Webpack 5 خواهیم دید را به اشتراک گذاشتند. این نسخه کارایی ساخت و cache کردن باثبات را بهبود خواهد بخشید، یک الگوریتم آی‌دی chunk نامگذاری شده (Named Chunk ID Algorithm) را معرفی خواهد کرد و...

با توجه به این که این نسخه یکی از انتشارات اصلی است، تغییرات بزرگی در آن وجود خواهند داشت و شاید کاربران انتظار داشته باشند که برخی پلاگین‌ها در آن کار نکنند.

امکانات منتظره در Webpack 5

حذف شدن امکانات منسوخ Webpack 4

تمام امکاناتی که در Webpack 4 منسوخ شده بودند، در این نسخه حذف شده‌اند. پس مهاجرت به Webpack 5 تضمین می‌کنند که Webpack شما هیچ هشدار منسوخیتی را نمایش نمی‌دهد. به علاوه، گروه پشت Webpack همچنین IgnorePlugin و BannerPlugin را نیز حذف کرده‌اند.

حذف polyfillهای خودکار Node.js

تمام نسخه‌های قبل از Webpack 4، برای اکثر ماژول‌های هسته‌ای Node.js برخی polyfillها را فراهم می‌کردند. این polyfillها پس از این که یک ماژول، هر کدام از ماژول‌های هسته‌ای را به کار می‌گرفت، به طور خودکار اعمال می‌شدند. استفاده از polyfillها، استفاده از ماژول‌هایی که برای Node.js نوشته شده‌اند را ساده‌تر می‌کند، اما همچنین حجم bundle را افزایش می‌دهد؛ زیرا ماژول‌های بزرگی به آن اضافه می‌شوند. برای جلوگیری از آن، Webpack 5 این ployfill کردن‌های خودکار را حذف کرده، و بر روی ماژول‌های سازگار با frontend تمرکز می‌کند.

الگوریتمی برای chunkهای قطعی و آی‌دی‌های ماژول

Webpack 5 الگوریتم جدیدی را برای cache کردن طولانی مدت به همراه دارد. این الگوریتم‌ها به طور پیشفرض در حالت تولید (production mode)، و به همراه این خطوط پیکربندی فعال شده‌اند:

chunkIds: “deterministic”, moduleIds: “deterministic”

این الگوریتم‌ها، آی‌دی‌های عددی کوتاهی را به روشی قطعی، به ماژول‌ها و chunkها اختصاص می‌دهند. پیشنهاد می‌شود که از مقادیر پیشفرض برای chunkIdها و moduleIdها استفاده کنید. شما همچنین می‌توانید از مقادیر پیشفرض قدیمی chunkIds: “size”, moduleIds: “size” هم استفاده کنید، که bundleهای کوچک‌تری را ایجاد می‌کنند، اما بیشتر پیش می‌آید که برای cache کردن‌ها نامعتبر شوند.

الگوریتم آی‌دی‌های chunk نامگذاری شده

یک الگوریتم آی‌دی‌های chink نامگذاری شده در این نسخه معرفی شده، که به طور پیشفرض در حالت توسعه‌دهی (development mode) فعال شده است. این الگوریتم به جای نام‌های عددی و قدیمی، برخی نام‌های خوانا را به chunkها و نام فایل‌ها می‌دهد. پس کاربران دیگر نیازی ندارند که از import(/*webpackChunkName: “name” */ “module”) برای اشکال‌زدایی استفاده کنند. برای رد کردن این ویژگی، شما می‌توانید پیکربندی‌ها را به صورت chunkIds: “natural” تغییر دهید.

حالات idle و close در کمپایلر

از Webpack 5 به بعد، کمپایلرها باید بعد از استفاده، بسته (close) شوند. حال، کمپایلرها می‌توانند به یک حالت idle (بی‌کار) وارد شده، و hookهایی را برای این وضعیت‌ها داشته باشند. پس از این که کمپایل کردن close (بسته) شده است، تمام کارهای باقی باید در سریع‌ترین حالت ممکن به اتمام برسند. سپس،‌ یک callback علامت خواهد دارد که عملیات close کردن به اتمام رسیده است.

بیشتر درباره Webpack یاد بگیرید:

منبع

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید