pnpm 11.3 منتشر شد
خلاصهٔ کاملتر
نسخه ۱۱.۳ از pnpm — پکیج منیجر سریع و کمحجم Node.js — با چند قابلیت قابلتوجه منتشر شد که مهمترینشون انتشار مرحلهای (staged publishing)، بهبود مصرف حافظه در workspace های بزرگ، و پیادهسازی بومی چند دستور جدیده.
pnpm stage یه دستور کاملاً جدیده که مفهوم staged publishing رو از npm به pnpm میآره. ایده اصلی اینه که میتونی یه نسخه از پکیجت رو «در صحنه» منتشر کنی — یعنی وجود داره ولی npm install اون رو نمیبینه — و بعد از بررسی و تأیید، اون رو به رجیستری اصلی ارتقا بدی. این برای تست CI، بررسی آرتیفکتهای ریلیز، یا هماهنگکردن انتشار چند پکیج همزمان خیلی مفیده.
زیردستورهای موجود برای این قابلیت اینان:
pnpm stage publish # انتشار نسخه در staging
pnpm stage list # لیست نسخههای staged
pnpm stage approve # ارتقای نسخه به رجیستری
pnpm stage reject # رد کردن نسخه staged
pnpm stage download # دانلود tarball نسخه stagedتنظیم جدید trustLockfile هم به pnpm-workspace.yaml اضافه شده. وقتی روی true تنظیم بشه، pnpm بررسیهای minimumReleaseAge و trustPolicy رو برای تمام ورودیهای lockfile رد میکنه و فرض میکنه که این فایل از قبل مورد اعتماده. این برای پروژههای بستهای که همه کامیتهاشون از منابع مطمئن میان خوبه. مقدار پیشفرض falseه، یعنی بررسیها بهصورت پیشفرض فعال میمونن.
علاوه بر این تنظیم، مصرف حافظه در همین بررسیها هم بهینه شده. قبلاً cache مربوط به trust-meta کل اطلاعات پکیج رو نگه میداشت — گراف وابستگیها، اسکریپتها، README و منیفست هر نسخه — که در workspace های بزرگ (حدود ۴ هزار ورودی lockfile) باعث کرش OOM روی CI runner هایی با heap 2 گیگابایت میشد. حالا cache فقط فیلدهایی که واقعاً برای بررسی trust لازمن رو نگه میداره.
سه دستور pnpm pkg، pnpm repo، و pnpm set-script هم حالا بدون نیاز به npm بهصورت بومی پیادهسازی شدن. pnpm pkg برای خواندن و نوشتن فیلدهای package.json، pnpm repo برای باز کردن آدرس مخزن پکیج در مرورگر، و pnpm set-script (با نام مستعار ss) برای اضافه یا ویرایش کردن ورودیهای بخش scripts در منیفست پروژهست — و از فرمتهای package.json5 و package.yaml هم پشتیبانی میکنه.
نکات کلیدی:
- دستور pnpm stage برای انتشار مرحلهای پکیجها اضافه شد
- تنظیم trustLockfile: true بررسی امنیتی lockfile رو برای پروژههای مورد اعتماد دور میزنه
- مصرف حافظه در workspace های بزرگ با minimumReleaseAge و trustPolicy بهطور قابلتوجهی کاهش پیدا کرده
- pnpm pkg، pnpm repo و pnpm set-script بدون وابستگی به npm اجرا میشن
- فلگ --skip-manifest-obfuscation برای pack و publish اضافه شد که فیلد packageManager و اسکریپتهای lifecycle رو در منیفست حفظ میکنه
- باگهای مربوط به pnpm dlx، pnpm dedupe، و pnpm add با shorthand گیتهاب برطرف شدن




