اگه تو دنیای node/npm کار میکنی، شاید بعد از نصب چندتا پروژه، با پیغام
Disk Space Low مواجه شدی، یا اصلا از نصب های طولانی و اشغال شدن الکی فضای سیستمت کلافه شدی؛ علت اصلیش پوشههای غولپیکر node_modules داخل پروژه های مختلف هستش. اما ابزاری به اسم pnpm اومده تا این کابوس رو برای همیشه تموم کنه.❓ اصلاً pnpm چیه؟
عبارت pnpm مخفف Performant npm هست؛ یک package manager سریع، مدرن و فوقالعاده بهصرفه برای برنامهنویسهای Node.js.
💡 چرا اختراع شد؟
مشکل اصلی npm و Yarn قدیمی این بود که با هر پروژه جدید، تمام بستهها رو دوباره به صورت کامل دانلود و توی پوشه node_modules همون پروژه کپی میکردن. یعنی اگه در ۱۰ تا پروژه از React استفاده میکردی، ۱۰ نسخه مجزا و تکراری ازش روی سیستم داشتی! pnpm ساخته شد تا این حجم ناخواسته رو حذف کنه و سرعت نصب رو بالاببره.
🔥 مزایای کلیدی pnpm نسبت به npm:
1. ذخیرهسازی هوشمند و صرفهجویی شدید در فضای دیسک:
بستهها فقط یک بار روی کل سیستم شما دانلود میشن! pnpm به جای کپی کردن فایلها توی هر پروژه، از Hard link و Symlink استفاده میکنه. یعنی ۱۰۰ تا پروژه هم داشته باشی، فضای دیسکت در حد یک پروژه اشغال میشه!
2. سرعت موشکی (تا ۳ برابر سریعتر):
به لطف معماری خاص و عدم نیاز به کپی مجدد فایلها، دستور pnpm install به طرز شگفتانگیزی سریعتر از npm install اجرا میشه.
3. امنیت بیشتر و جلوگیری از Phantom Dependencies:
توی npm اگه بسته A به بسته B نیاز داشته باشه، تو میتونی مستقیم توی کد به B دسترسی داشته باشی (حتی اگه تو package.json نیورده باشیش). این قضیه باعث باگهای عجیب میشه. pnpm با ساختار درختی خاص خودش جلوی این مشکل رو میگیره.
🛠 چطوری شروع کنیم؟
نصب ساده با npm:
npx get-pnpm
استفاده از دستورات مشابه:
🔹 pnpm install (به جای npm install)
🔹 pnpm add <package> (به جای npm i <package>)
🔹 pnpm dev (برای اجرای اسکریپتها)
#Nodejs #pnpm
@CleverDevs - @CleverDevsGp