MapLibre GL JS ۶.۰.۰ منتشر شد
خلاصهٔ کاملتر
تیم MapLibre نسخهٔ ۶.۰.۰ کتابخونهٔ MapLibre GL JS رو منتشر کرد؛ نسخهای که همهٔ تغییرات پیشانتشارهای نسخهٔ ۶ رو یکجا جمع کرده و تو یادداشت انتشار برای آپگرید، راهنمای رسمی مهاجرت از v5 به v6 پیشنهاد شده. بزرگترین تغییر، رفتن به توزیع فقط ESM با فایل maplibre-gl.mjs هست: باندلهای UMD یعنی maplibre-gl.js و maplibre-gl-csp.js دیگه منتشر نمیشن.
چون بیلد ESM ورکرش رو با یه URL واقعی لود میکنه، دیگه لازم نیست تو Content Security Policy مقدار worker-src blob: باز باشه — برای همین نسخهٔ جدا برای CSP هم حذف شده. در عوض هر کی کتابخونه رو با تگ اسکریپت ساده لود میکرده باید بره سراغ حالت type="module"، و ایمپورت پیشفرض هم جاش رو به ایمپورت namespace یا named میده.
پشتیبانی از WebGL نسخهٔ ۱ کلاً برداشته شده و از این به بعد WebGL2 اجباریه. تو یادداشت انتشار اومده که نگهداری مسیر قدیمی دیگه ارزش پیچیدگیای که اضافه میکرد رو نداشت و حذفش راه رو برای بهبود سرعت (مثلاً شفافیت خطوط)، ارتقای Terrain3D و رفع چند باگ باز کرده؛ خطای در دسترس نبودن WebGL رو هم حالا میشه با رویداد error گرفت. تارگت TypeScript هم به ES2022 رسیده که باندل کوچیکتر و اجرای سریعتر میده.
تو سطح API، Map دیگه از Camera ارث نمیبره بلکه اون رو در خودش نگه میداره و map.transform داخلی حذف شده. همهٔ رویدادهای نقشه به کلاسهای واقعی تبدیل شدن و Evented جنریک و abstract شده تا on و off خودشون تایپدار بشن. رویداد styleimagemissing هم فقط خبر میده و برای دادن تصویر جاافتاده باید از Map.setMissingStyleImageResolver استفاده کنی که کالبک async هم قبول میکنه.
بخش بهینهسازی هم پر و پیمونه: feature state از آبجکت رشتهای به آرایه رفته و تا ۳.۴ برابر سریعتر شده، باندلینگ به Rolldown سوییچ کرده، تولید فایلهای .d.ts حدود ۷۸ برابر سریعتر شده و تایپچک با نسخهٔ بتای TypeScript 7 حدود ۳.۵ برابر. از قابلیتهای تازه هم میشه به fill-layer-opacity، line-layer-opacity و گزینهٔ terrainSkirtLength اشاره کرد.
نکات کلیدی:
- توزیع فقط ESM؛ باندلهای UMD و CSP حذف شدن و worker-src blob: دیگه لازم نیست.
- WebGL نسخهٔ ۱ حذف شد و WebGL2 پیشنیاز اجباریه.
- تارگت TypeScript روی ES2022 رفت: باندل کوچیکتر و اجرای سریعتر.
- Map حالا Camera رو در خودش ترکیب میکنه و map.transform داخلی حذف شده.
- feature state تا ۳.۴ برابر و تولید .d.ts تا ۷۸ برابر سریعتر شده.




