معرفی و بررسی Node.js 22

معرفی و بررسی Node.js 22

انتشار:

مشاهده Changelog کامل ورژن 22.0.0

Node.js 22 در ماه اکتبر 2024 (8 آبان 1403) وارد دوره پشتیبانی بلندمدت (LTS) میشه و تا اون موقع (برای شش ماه آینده)، به عنوان نسخه "Current" شناخته میشه. جدول زمانبندی Release

 

 

به دلیل حجم بالا و اهمیت کم و زیاد تغییرات، تو این مطلب فقط به بعضی از تغییرات اشاره میشه.

 

بروزرسانی V8 (موتور جاوااسکریپت) به ورژن 12.4

 

کامپایلر Maglev

کامپایلر Maglev انجین V8 به طور پیش فرض روشنه و عملکرد برنامه‌های CLI با عمر کوتاه (short-lived) رو بهتر میکنه.

 

پشتیبانی از ESM به صورت Sync

با استفاده از فلگ --experimental-require-module میتونید از امکان آزمایشی لود کردن ماژول‌های ESM با استفاده از تابع require() استفاده کنید.

در صورتی که از این فلگ استفاده کنید باید 2 شرط زیر رو رعایت کنید:

  1. نزدیکترین package.json مقدار "type": "module" را داشته باشد یا پسوند فایل مورد نظر .mjs باشد
  2. کد کاملا 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) برای آدرس فایل‌ها رو ارائه میدن.

 

 

منبع: nodejs.org/en/blog/announcements/v22-release-announce