تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

معرفی Node.js نسخه 24، جهشی چشمگیر در عملکرد، امنیت و تجربه توسعه‌


۲۶ تیر ۱۴۰۴

نسخه 24 Node.js به تازگی منتشر شده و با ارتقای قابلیت های قبلی به سطح بهتری دست پیدا کرده است. این نسخه با رفع اشکالات قبلی و افزدون قابلیت های جدید، توانسته است تا سرعت اجرای برنامه را بالا ببرد و امکانات بیشتری را برای مدیریت کدها و ساخت برنامه های جدید فراهم کند. اگر به دنبال یک ابزار قدرتمند و به روز برای توسعه نرم افزارهای مبتنی بر جاوا خود هستید. این نسخه را از دست ندهید! بنابراین با لیارا همراه باشید.

بدون هیچ‌گونه پیکربندی پیچیده، هاست NodeJS را در چند ثانیه راه‌اندازی کنید!
✅ عملکرد بالا ✅ بدون نیاز به پیکربندی ✅ راه‌اندازی سریع
خرید هاست ابری NodeJS

آنچه در ادامه خواهید خواند:

  • ارتقای موتور V8 به نسخه 13.6
  • مدل دسترسی (Permission Model) پیشرفته‌ تر و URLPattern سراسری
  • معرفی نسخه‌ هوشمندتر از test runner داخلی
  • ارتقای HTTP Client با Undici 7.0.0 و انتشار npm نسخه ۱۱
  • موارد منسوخ و حذف‌ شده در Node.js 24
  • جدول مقایسه امکانات و تغییرات کلیدی در Node.js 24
  • سوالات متداول
  • جمع بندی

ارتقای موتور V8 به نسخه 13.6

یکی از مهم‌ترین قابلیت‌هایی که در Node.js 24 بهبود یافت، ارتقای موتور جاوا اسکریپت V8 به نسخه 13.6 بود؛ همان موتوری که در مرورگر گوگل کروم نیز مورد استفاده قرار می‌گرفت. این ارتقا تنها یک تغییر عددی نیست، بلکه امکانات جدید و پیشرفته‌ای را برای جاوا اسکریپت فراهم می‌کند، از جمله:

  • RegExp.escape: ابزاری برای جلوگیری از اشتباهات متنی است، به‌خصوص در زمانی که کاراکتر‌های خاصی استفاده می‌کنید.
  • Float16Array: نوع جدیدی از آرایه‌ها که برای ذخیره‌سازی اعداد اعشاری 16 بیتی است که به کمک آن می‌توان حافظه کمتری را مصرف کرد. این قابلیت برای برنامه‌هایی مانند یادگیری ماشین که نیاز به سرعت بالا و مصرف مناسبی دارد، بسیار کاربردی خواهد بود.
  • Atomics.pause: این نسخه قابلیت جدیدی را برای برنامه‌نویسان ارائه کرده است تا بتوانند به‌صورت همزمان فعالیت‌های خود را انجام دهند. نا گفته نماند این قابلیت کنترل دقیق‌تری بر روی توقف و شروع اجرای بخش‌های مختلف برنامه را دارد.
  • Explicit Resource Management await using: این قابلیت جدید به برنامه‌نویسان کمک می‌کند تا منابع را مانند اتصال‌های شبکه را به‌صورت خودکار مدیریت کنند. زمانی که کار با آن تمام شود، خودکار بسته می‌شود و نیازی به بستن برنامه نخواهد بود. این عمل باعث می‌شود که حافظه یا منابع سیستم اشغال نشود و برنامه‌ها بهتر اجرا شوند.
Node.js نسخه 24

مدل دسترسی (Permission Model) پیشرفته‌تر و URLPattern سراسری

مدل دسترسی که از نسخه 20 Node.js به‌صورت آزمایشی معرفی شده بود، حالا در نسخه 24 بهتر شده و پرچم مربوطه از --experimental-permission به --permission تغییر یافته است؛ نشانه‌ای از آماده شدن این ویژگی برای استفاده عمومی.

مدل دسترسی امکان محدودسازی منابعی را که اپلیکیشن شما می‌تواند به آن‌ها دسترسی داشته باشد مانند فایل‌سیستم یا شبکه فراهم می‌کند؛ قابلیتی حیاتی برای افزایش امنیت در محیط‌های حساس.

همچنین، API جدیدی به نام URLPattern که پیش‌تر نیاز به import جداگانه داشت، اکنون به‌صورت سراسری در دسترس است. این API به توسعه‌دهندگان اجازه می‌دهد الگوهایی مانند /users/:id را برای مسیریابی (routing) یا تطبیق آدرس‌ها تعریف کنند؛ راه‌حلی بسیار مؤثرتر و خواناتر از استفاده مستقیم از عبارات باقاعده.

معرفی نسخه‌ هوشمند تر از test runner داخلی

اجرای تست‌ها در Node.js نیز با تغییراتی همراه بوده است. تست‌رانر داخلی اکنون قادر است به‌صورت خودکار منتظر اجرای زیرتست‌ها (subtests) بماند.

پیش از این، توسعه‌دهندگان مجبور بودند برای اطمینان از اجرای کامل زیرتست‌ها، از await به‌صورت دستی استفاده کنند. در نسخه ۲۴، این کار به‌صورت خودکار انجام می‌شود، که باعث کاهش خطاهای رایج و ساده‌تر شدن فرآیند تست‌نویسی می‌شود.

Node.js چیست؟
Node.js

ارتقای HTTP Client با Undici 7.0.0 و انتشار npm نسخه ۱۱

در Node.js 24، نسخه‌ی 7.۰.۰ از Undici کلاینت HTTP مدرن نود گنجانده شده است. این ارتقا پشتیبانی بهتر از استانداردهای جدید HTTP و بهبود عملکرد در استفاده از fetch() یا درخواست‌های پرتعداد HTTP را به‌همراه دارد.

همچنین این نسخه با npm v11 عرضه می‌شود، که شامل بهبودهایی مانند:

  • نصب سریع‌تر بسته‌ها
  • بررسی‌های امنیتی پیشرفته‌تر
  • سازگاری بیشتر با اکوسیستم‌های مدرن بسته‌ها

برخی تغییرات مهم در npm 11 عبارتند از:

  • نیازمندی جدید: node باید نسخه ^20.17.0 یا >=22.9.0 باشد
  • وجود یک prompt برای نوع پروژه هنگام اجرای npm init
  • حذف دستور npm hook
  • پرچم --ignore-scripts اکنون بر تمام lifecycle scripts (از جمله prepare) اثر می‌گذارد
  • در صورت شکست درخواست جمعی بررسی امنیتی (bulk advisory audit)، دیگر fallback به endpoint قدیمی انجام نمی‌شود

پاک‌سازی‌های بهاری: موارد منسوخ و حذف‌شده در Node.js 24

هم‌زمان با پیشرفت Node.js، برخی APIهای قدیمی در حال حذف یا غیرفعال شدن هستند. از جمله:

  • متد url.parse() که قرار است با API مدرن WHATWG جایگزین شود.
  • ساختارهایی مانند SlowBuffer و tls.createSecurePair اکنون منسوخ شده‌اند.
  • ثابت‌های قدیمی سیستم‌فایل نظیر fs.F_OK نیز در حال حذف هستند.

اگر با پروژه‌هایی قدیمی کار می‌کنید، لازم است این تغییرات را رصد و نسبت به بروزرسانی کد اقدام کنید.

جدول مقایسه امکانات و تغییرات کلیدی در Node.js 24

ویژگیتوضیحاتوضعیت در نسخه‌های قبلیوضعیت در Node.js 24
ارتقا به V8 نسخه 13.6اضافه شدن RegExp.escape، Float16Array، Atomics.pause و موارد دیگروجود نداشتاضافه شده
پشتیبانی سراسری از URLPatternتعریف ساده‌تر مسیرها بدون نیاز به importآزمایشی یا بدون پشتیبانیپایدار و سراسری
مدل مجوزدهی (Permission Model)محدودسازی دسترسی به منابع مانند فایل‌سیستم و شبکهآزمایشیپایدار و فعال
پشتیبانی از await usingمدیریت خودکار منابع با پاک‌سازی در پایان استفادهپشتیبانی نمی‌شدپشتیبانی کامل
تابع جدید Error.isErrorبررسی ساده‌تر برای تشخیص اشیای خطاوجود نداشتاضافه شده
WebAssembly با Memory64پشتیبانی از حافظه ۶۴ بیتی در برنامه‌های WASMپشتیبانی نمی‌شداضافه شده
بهبود در تست‌رانر داخلیاجرای خودکار زیرتست‌ها بدون نیاز به await دستیمحدود یا وجود نداشتکامل و پیشرفته
کلاینت HTTP با Undici 7.0.0عملکرد بهتر، سازگاری بیشتر با fetch()نسخه‌های قدیمی‌ترنسخه جدید و سریع‌تر
npm نسخه ۱۱سرعت نصب بیشتر، بهبود امنیت و سازگاری پروژه‌هانسخه‌های پایین‌ترنسخه ۱۱ به‌صورت پیش‌فرض
حذف APIهای منسوخحذف تدریجی url.parse، domain، SlowBuffer و…هنوز در دسترسدر حال حذف تدریجی

سوالات متداول

در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جواب‌های کوتاه اما مفیدی داده‌ایم که با استفاده از آن می‌توانید به سوال خود پاسخ صحیحی را بدهید.

آیا برای استفاده از Node.js 24 باید تغییر خاصی در پروژه‌ام ایجاد کنم؟

در بیشتر موارد، پروژه‌هایی که با نسخه‌های اخیر Node.js (مثلاً ۲۰ یا ۱۸) سازگار بوده‌اند، بدون تغییر خاصی روی نسخه ۲۴ اجرا می‌شوند. اما اگر از APIهای منسوخ یا بسته‌های ناسازگار استفاده کرده باشید، ممکن است نیاز به به‌روزرسانی کد یا وابستگی‌ها باشد.

مدل جدید مجوزدهی (Permission Model) چه کاربردی دارد؟

مدل مجوزدهی به شما امکان می‌دهد دسترسی‌های برنامه Node.js خود را محدود کنید—for example، جلوگیری از دسترسی ناخواسته به فایل‌سیستم یا اینترنت. این ویژگی برای افزایش امنیت در محیط‌های production یا تست بسیار مفید است.

تفاوت Node.js 24 با نسخه LTS قبلی (Node.js 20) در چیست؟

نسخه 24 شامل ویژگی‌های جدیدی مانند پشتیبانی کامل از await using، ارتقای V8 به نسخه 13.6، و مدل مجوزدهی پایدار است. همچنین برخی APIهای منسوخ در این نسخه حذف یا غیرفعال شده‌اند.

معرفی هاست NestJS رایگان
هاست NestJS رایگان

آیا می‌توانم همچنان از npm نسخه قدیمی‌تر در Node.js 24 استفاده کنم؟

بله، اما پیشنهاد می‌شود از npm نسخه ۱۱ که به‌صورت پیش‌فرض همراه Node.js 24 نصب می‌شود استفاده کنید؛ زیرا عملکرد و امنیت بهتری دارد. در صورت نیاز، می‌توانید با دستور npm install -g npm@version نسخه دلخواه را نصب کنید.

پشتیبانی از URLPattern چه کمکی به توسعه‌دهندگان می‌کند؟

URLPattern تعریف الگوهای مسیر و تطبیق آن‌ها را ساده‌تر می‌کند، مخصوصاً در برنامه‌های تحت وب یا APIهایی که نیاز به بررسی مسیرها دارند. این قابلیت اکنون به‌صورت پایدار در Node.js 24 قابل استفاده است.

آیا استفاده از Error.isError() جایگزین try/catch می‌شود؟

خیر. این متد صرفاً برای بررسی اینکه یک مقدار واقعاً یک خطاست (و نه فقط یک آبجکت) استفاده می‌شود. استفاده از try/catch همچنان برای مدیریت خطاها ضروری است.

آیا Node.js 24 با تمام پکیج‌های موجود در npm سازگار است؟

بیشتر پکیج‌های محبوب با Node.js 24 سازگار هستند، اما اگر یک پکیج از ویژگی‌های خاص یا نسخه‌های قدیمی Node.js استفاده کند، ممکن است با مشکل مواجه شوید. همیشه قبل از مهاجرت نسخه، تست سازگاری را روی محیط staging انجام دهید.

نحوه نصب Node.js روی سرور مجازی اوبونتو Ubuntu
نصب Node.js روی سرور مجازی اوبونتو

جمع‌ بندی

Node.js 24 تنها یک به‌روزرسانی عددی نیست؛ بلکه گامی بزرگ به‌سوی بهبود عملکرد، امنیت، و تجربه توسعه‌دهنده است. این نسخه ابزارهایی واقعی و کاربردی برای ساده‌سازی توسعه، افزایش بهره‌وری و هم‌گام‌سازی بهتر با آینده‌ی جاوااسکریپت فراهم می‌کند.

به اشتراک بگذارید

برچسب‌ها: