مشاهده Changelog کامل ورژن 22.0.0
Node.js 22 در ماه اکتبر 2024 (8 آبان 1403) وارد دوره پشتیبانی بلندمدت (LTS) میشه و تا اون موقع (برای شش ماه آینده)، به عنوان نسخه "Current" شناخته میشه. جدول زمانبندی Release
فهرست مطالب
بروزرسانی V8 به ورژن 12.4کامپایلر Maglevپشتیبانی از ESM به صورت Syncاجرای اسکریپتهای package.jsonافزایش محدودیت بافر پیش فرض استریمهاقابلیت Hot reload (watch mode)وب سوکتglob و globSync
به دلیل حجم بالا و اهمیت کم و زیاد تغییرات، تو این مطلب فقط به بعضی از تغییرات اشاره میشه.
بروزرسانی V8 (موتور جاوااسکریپت) به ورژن 12.4
- بازیافت حافظه (Garbage Collection) جدید وب اسمبلی
- متد Array.fromAsync (صفحه tc39.es، صفحه موزیلا) برای shallow copy از آرایه (async iterable، async iterable و array-like)
- متدهای جدید برای نوع داده Set (صفحه tc39.es، صفحه موزیلا)
کامپایلر Maglev
کامپایلر Maglev انجین V8 به طور پیش فرض روشنه و عملکرد برنامههای CLI با عمر کوتاه (short-lived) رو بهتر میکنه.
پشتیبانی از ESM به صورت Sync
با استفاده از فلگ --experimental-require-module میتونید از امکان آزمایشی لود کردن ماژولهای ESM با استفاده از تابع require() استفاده کنید.
در صورتی که از این فلگ استفاده کنید باید 2 شرط زیر رو رعایت کنید:
- نزدیکترین
package.jsonمقدار"type": "module"را داشته باشد یا پسوند فایل مورد نظر.mjsباشد - کد کاملا synchronous باشد (در سطح اصلی از await استفاده نشده باشد)
این شرایط شبیه به نسخه sync تابع import() هستش و احتمالا این امکان در ورژنهای آینده به صورت پیش فرض فعال بشه.
اجرای اسکریپتهای package.json
در Node.js 22 امکان آزمایشی برای اجرای اسکریپتهای package.json فراهم شده که بدون نیاز به npm میتونید اسکریپتها رو اجرا کنید.
با استفاده از فلگ --run و فرمت node --run <script-in-package-json>
افزایش محدودیت حافظه بافر پیش فرض استریمها
منظور از محدودیت حافظه بافر، Stream high water mark هستش که در واقع در لایههای داخلی Node.js استفاده میشه و ظرفیت واحد buffer که داده رو تو خودش نگه داشته نشون میده. پیش فرض این محدودیت از 16KiB به 64KiB افزایش داشته که باعث بهبود عملکرد و اما افزایش جزئی مصرف حافظه میشه. اگر برنامهای محدودیت استفاده از حافظه داره باید با استفاده از متد setDefaultHighWaterMark، این محدودیت رو کاهش بده.
قابلیت Hot reload (watch mode)
قابلیت watch mode که در ورژن 18.11.0 به صورت آزمایشی معرفی شد و با فلگ --watch فعال میشه (node --watch)، در حال حاضر پایدار (stable) شده و قابل استفاده است. تو این حالت، تغییرات در فایلهای مشخص شده باعث میشه Node.js برنامه (process) رو ریاستارت کنه.
وب سوکت
پیادهسازی WebSocket سازگار با مرورگر که در نسخههای قبلی به صورت آزمایشی در دسترس بود و الان به صورت پیش فرض فعال شده. این قابلیت نیاز به کتابخانههای مربوطه رو از بین میبره.
glob و globSync
در ماژول node:fs (دسترسی به file system) دو تابع glob و globSync اضافه شدن که قابلیت تطبیق الگو (pattern matching) برای آدرس فایلها رو ارائه میدن.