Pnpm چیست و چرا برای مدیریت پکیج‌ها باید از آن استفاده کنید؟
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 7 دقیقه

Pnpm چیست و چرا برای مدیریت پکیج‌ها باید از آن استفاده کنید؟

مدیریت وابستگی‌ها و کتابخانه‌ها یکی از اساسی‌ترین وجه‌های توسعه هر نرم افزاری‌ست که برنامه‌نویسان و توسعه دهندگان باید به خوبی با شیوه‌های مختلف آن آشنایی داشته باشند. NPM و Yarn دو مورد از مهمترین این پکیج منیجرها بوده‌اند که توسعه دهندگان نودجی‌اس و جاوا اسکریپت برای سال‌های طولانی‌ست از آن‌ها استفاده کرده‌اند. اما هر دو این پکیج منیجرها با مشکلات و محدودیت‌هایی روبرو هستند که باعث شده‌اند تا یک تکنولوژی جدید وارد بازار شود. از جمله این مشکلات می‌توان به سرعت کم در فرایند نصب، استفاده زیاد از منابع سخت افزاری و حافظه ذخیره‌سازی و مواردی از این دست است.

در این مطلب از وبسایت آموزش برنامه نویسی راکت قصد داریم Pnpm را به شما معرفی بکنیم. تکنولوژی جدیدی برای مدیریت وابستگی‌ها و پکیج‌ها که از تجربیات دو رقیب پیشین خود استفاده کرده و تلاش دارد تا امکانات بهتری را عرضه کند.

Pnpm چیست؟

اگر بخواهیم به صورت بسیار ساده با داستان Pnpm یا Performant NPM آشنا شویم باید بگوییم که یک راهکار جدید برای مدیریت پکیج‌هاست که سعی دارد تا مشکلات و چالش‌های پکیج‌ منیجرهای قبلی خود را حل کند. در هسته اصلی Pnpm یک سیستم ذخیره‌سازی مرکزی وجود دارد که با دایرکتوری انتری یا Directory Entry ادغام شده تا فرایند مدیریت پکیج‌ها در جاوا اسکریپت را سهولت ببخشد.

برخلاف NPM و Yarn که تمایل دارند تا پکیج‌ها را برای هر پروژه به صورت جداگانه پیاده‌سازی و در واقع تکرار کنند، Pnpm از یک فضای محتوایی آدرس پذیر استفاده می‌کند که از طریق یک فضای مجازی به هر پکیج لینک یا ‌Hard Link (منظور از هارد لینک همان دایرکتوری انتری است) می‌دهد. نتیجه این موضوع کاهش مصرف فضای ذخیره‌سازی و میزان افزونگی و تکرار است.

pnpm vs npm

Pnpm با NPM چه تفاوتی دارد؟

Pnpm یک روش منحصر به فرد برای مدیریت پکیج‌ها عرضه کرده و از این جهت با تکنولوژی‌های پیش از خودش تفاوت‌هایی دارد. بیایید با تفاوت‌های Pnpm با NPM آشنا شویم:

مدیریت وابستگی‌ها

  • Pnpm: در Pnpm یک مکانیزم اشتراکی وابستگی‌ها وجود دارد که به پروژه‌های مختلف کمک می‌کند تا از یک پکیج به صورت اشتراکی استفاده کنند. این رویکرد تکرار و افزونگی را کاهش داده و از فضای ذخیره‌سازی کمتری استفاده می‌کند.
  • NPM: در NPM شما با معماری مدیریت وابستگی‌ها به صورت مستقل روبرو هستید به این صورت که هر پروژه شما به صورت جداگانه یک کپی از وابستگی‌ها و پکیج‌های مورد نظرش را دریافت می‌کند. این موضوع نرخ افزونگی را بالا برده و میزان استفاده از فضای ذخیره‌سازی را افزایش داده است.

استفاده از فضای ذخیره‌سازی

  • Pnpm: در Pnpm شما از فضای ذخیره‌سازی کمتری استفاده می‌کنید چرا که وابستگی‌ها از یک مدل ذخیره‌سازی مرکزی استفاده کرده و پکیج‌ها به صورت مشترک در اختیار پروژه‌ها قرار می‌گیرند. در نتیجه فضای کمتری استفاده خواهد شد.
  • NPM: از آنجایی که در NPM هر پروژه به صورت مستقل پکیج‌ها را وارد می‌کند، میزان تکرار پکیج‌ها افزایش یافته و در نتیجه حجم بالایی از فضای ذخیره‌سازی استفاده می‌شود.

سرعت نصب شدن پکیج‌ها

  • Pnpm: از آنجایی که هر پکیج برای پروژه‌های مختلف تنها یکبار نصب می‌شود در نتیجه زمان انتظار یک پکیج برای هر پروژه تنها یکبار طول می‌کشد و در نتیجه سرعت نصب بسیار بالایی را می‌توانید تجربه کنید.
  • NPM: فرایند زمانی نصب هر پکیج برای هر پروژه به صورت جداگانه حساب می‌شود و در نتیجه مدت زمان بیشتری برای نصب پکیج‌ها نیاز است.

ادغام‌پذیری در محیط توسعه

  • Pnpm: یکی از چالش‌های اصلی که Pnpm با آن رو در رو است پشتیبانی محدود ابزارهای مختلف از این پکیج منیجر است. فریمورک‌ها و ابزارهایی که مبتنی بر NPM است ممکن است در ادغام شدن با PNPM با مشکل روبرو شوند. این موضوع روی انجمن‌ها و تعداد کاربران Pnpm نیز تاثیر گذاشته و از آن جهت که این پکیج منیجر نوظهور است با محدودیت تعداد کاربران و انجمن‌های کاربری روبروست.
  • NPM: از آنجایی که ابزارها و فریمورک‌های بسیاری به صورت رسمی و از همان ابتدا سازگار با NPM توسعه یافته‌اند شما می‌توانید مجموعه بزرگی از ابزارهای مختلف را در این پلتفرم بدست گرفته و آن را با محیط توسعه پروژه خود ادغام کنید.

چگونه Pnpm را نصب کنیم؟

نصب کردن Pnpm به دو روش کلی ممکن است. یکی از این روش‌ها به حالت Standalone است که در آن نیازی به نصب نودجی‌اس روی سیستم نیست و روش دیگر که روش نسبتا ساده‌تر و البته مطمئن‌تری‌ست نصب در کنار نودجی‌اس و پکیج منیجر NPM است.

زمانی که شما Pnpm را نصب کردید دو دستور CLI به صورت pnpm و @pnpm/exe در اختیار خواهید داشت.

pnpm نسخه معمولی و کلی Pnpm است که برای اجرا شدن به نودجی‌اس نیاز دارد. برای نصب کردن به صورت زیر عمل کنید:

npm install -g pnpm

@pnpm/exe یک فایل اجرایی‌ست که در آن نودجی‌اس نیز وجود دارد و برای کار با آن نیازی نیست که از قبل نودجی‌اس را نصب کرده باشید. برای نصب این مورد به صورت زیر عمل کنید:

npm install -g @pnpm/exe

بعد از اینکه Pnpm را نصب کردید می‌توانید با وارد کردن دستور زیر از نصب شدن و نسخه Pnpm روی سیستم عامل‌تان مطمئن شوید:

pnpm -v

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

دستورات اولیه و پایه‌ای

  1. pnpm add package_name : با استفاده از این دستور می‌توانید یک پکیج خاص را نصب کنید. به صورت پیشفرض پکیج‌هایی که نصب می‌کنید به عنوان Production Dependency نصب خواهند شد. برای اینکه به صورت dev در بیایند نیاز است که فلگ -D را به انتهای آن اضافه کنید.
  2. pnpm install یا pnpm i : با استفاده از این دو دستور می‌توانید پکیج‌های مورد نظرتان را به پروژه نودجی‌اس اضافه کنید.
  3. pnpm remove package_name : این دستور یک پکیج را از node_modules حذف کرده و آن را از package.json نیز پاک می‌کند. می‌توانید از سه جایگزین rm، uninstall و un نیز استفاده کنید.
  4. pnpm update package_name : این دستور پکیج مورد نظرتان را به آخرین نسخه بروزرسانی می‌کند.

سخن پایانی

اگر روی کامپیوترتان چندین پروژه دارید و می‌خواهید فضای ذخیره‌سازی کمتری را مصرف کنید به شما پیشنهاد می‌کنم که از Pnpm استفاده کنید. Pnpm جایگزینی بسیار سریع‌تر و بهینه‌تر از NPM و Yarn است و می‌تواند در فرایند مدیریت پروژه‌ها بیشترین کمک را به شما بکند.

ما در این مقاله به معرفی Pnpm، مقایسه آن با NPM، چگونگی نصب و همچنین آشنایی با دستورات پایه‌ای آن پرداختیم. مطمئنا این مقاله می‌تواند شروعی ساده و البته مفید برای کار کردن با Pnpm برای شما باشد.

اگر به یادگیری جاوا اسکریپت و نودجی‌اس علاقه‌مند هستید به شما پیشنهاد می‌کنم که دوره‌ها و مسیرهای یادگیری زیر را پیش بگیرید:

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

مسیر یادگیری نودجی‌اس و تمام تکنیک‌ها و تکنولوژي‌های لازم برای تبدیل شدن به یک توسعه دهنده حرفه‌ای نودجی‌اس

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
4.5 از 4 رای

/@arastoo
ارسطو عباسی
کارشناس تولید و بهینه‌سازی محتوا

کپی رایتر، یوایکس رایتر، متخصص سئو محتوا و… عناوینی هستن که می‌تونم حرفه‌ام رو باهاشون خلاصه کنم اما جدای از این موارد، کتاب نوشتم، پادکست ضبط کردم، مارکتینگ محتوا انجام دادم و خلاصه تجربیات تا بخوایید در زمینه کلمات کسب کردم.

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

ارسطو عباسی

کارشناس تولید و بهینه‌سازی محتوا