npm 11.16.0 منتشر شد؛ کنترل بیشتر روی اسکریپتهای نصب
خلاصهٔ کاملتر
تیم npm نسخهٔ ۱۱.۱۶.۰ ابزار خط فرمانش رو (تاریخ ۲۷ مه ۲۰۲۶) منتشر کرده. طبق یادداشتهای انتشار، شاخصترین بخش این نسخه فاز اول یه سیاست جدید به اسم allowScripts هست که روی نحوهٔ اجرای اسکریپتهای نصب پکیجها تمرکز داره.
خیلی از پکیجها موقع نصب یه سری اسکریپت (مثل postinstall) اجرا میکنن و همین یکی از راههای رایج حملههای زنجیرهٔ تأمین (supply chain) بوده. سیاست جدید بهصورت opt-in طراحی شده، یعنی بهجای اینکه همهچیز بهصورت پیشفرض اجرا شه، خودت انتخاب میکنی کدوم پکیجها اجازهٔ اجرای اسکریپت داشته باشن. این هنوز فاز اوله، پس پایهٔ کاره و احتمالاً تو نسخههای بعدی کاملتر میشه.
کنار این تغییر امنیتی، یه قابلیت دیگه هم اضافه شده: حالا میتونی موقع انتشار پکیج از --access=private بهعنوان یه alias برای حالت restricted استفاده کنی که کار انتشار پکیجهای خصوصی رو خواناتر میکنه.
تو بخش رفع باگها، یه تایپو تو fullMetadata درست شده و یه مشکل مربوط به اسپینر پیشرفت که موقع باز شدن ادیتور تعاملی متوقف نمیشد هم برطرف شده. تو مستندات هم دو متغیر محیطی npm_old_version و npm_new_version مستند شدن.
بخش بزرگی از این نسخه هم بهروزرسانی وابستگیهاست؛ از جمله undici، sigstore، semver، lru-cache و چند پکیج داخلی مثل @npmcli/arborist و @npmcli/config که همگی به نسخههای جدیدتر رفتن.
نکات کلیدی:
- فاز اول سیاست allowScripts برای کنترل opt-in اجرای اسکریپتهای نصب، یه گام امنیتی مقابل حملههای زنجیرهٔ تأمین
- alias جدید --access=private برای انتشار پکیجهای خصوصی
- رفع باگ اسپینر پیشرفت موقع باز شدن ادیتور تعاملی و رفع تایپو در fullMetadata
- مستندسازی متغیرهای محیطی npm_old_version و npm_new_version
- بهروزرسانی گستردهٔ وابستگیها مثل undici، sigstore و semver




