DEV Community

Cover image for কেন আমি npm ছেড়ে pnpm-এ গেলাম (এবং আপনারও কেন সেটা করা উচিত)
Razibul Islam
Razibul Islam

Posted on

কেন আমি npm ছেড়ে pnpm-এ গেলাম (এবং আপনারও কেন সেটা করা উচিত)

ডেভেলপমেন্টের জগতে npm (Node Package Manager) বহুদিন ধরে জাভাস্ক্রিপ্ট ডেভেলপারদের প্রিয় সঙ্গী। কিন্তু গত কয়েক বছরে, pnpm নামে একটি নতুন টুল এসে npm-এর জায়গা দখল করছে। আমি নিজেও npm থেকে pnpm-এ সুইচ করেছি, এবং এর পেছনে কিছু শক্তিশালী কারণ আছে। এই আর্টিকেলে আমি আপনাদের বলবো, কেন আমি এই পরিবর্তন করলাম এবং কেন আপনারও pnpm ব্যবহার করা উচিত। এটি একটি সহজ, সাবলীল, এবং এসইও-অপ্টিমাইজড আর্টিকেল, যা পড়ে আপনি pnpm-এর সুবিধাগুলো স্পষ্টভাবে বুঝতে পারবেন।


স্টেপ ১: npm এবং pnpm কী?

npm কী?

npm হলো জাভাস্ক্রিপ্টের ডিফল্ট প্যাকেজ ম্যানেজার, যা Node.js-এর সাথে আসে। এটি ডেভেলপারদের প্যাকেজ ইনস্টল, ম্যানেজ এবং শেয়ার করতে সাহায্য করে। npm ব্যবহার করে আমরা সহজেই React, Express-এর মতো লাইব্রেরি বা ফ্রেমওয়ার্ক ইনস্টল করতে পারি।

pnpm কী?

pnpm (Performant Node Package Manager) হলো npm-এর একটি দ্রুত এবং আরও দক্ষ বিকল্প। এটি একইভাবে প্যাকেজ ম্যানেজমেন্টের কাজ করে, কিন্তু এর কিছু অনন্য ফিচার, যেমন—ডিস্ক স্পেস বাঁচানো, দ্রুত ইনস্টলেশন, এবং কঠোর ডিপেন্ডেন্সি ম্যানেজমেন্ট—এটিকে আলাদা করে তোলে।


স্টেপ ২: কেন আমি npm থেকে pnpm-এ সুইচ করলাম?

আমার ডেভেলপমেন্ট জার্নিতে npm দীর্ঘদিন ধরে আমার সঙ্গী ছিল। কিন্তু বড় প্রজেক্টে কাজ করতে গিয়ে আমি কিছু সমস্যার মুখোমুখি হয়েছি, যেমন:

  • ধীর ইনস্টলেশন: npm দিয়ে বড় প্রজেক্টে প্যাকেজ ইনস্টল করতে অনেক সময় লাগত।
  • ডিস্ক স্পেসের অপচয়: npm প্রতিটি প্রজেক্টের জন্য আলাদা করে node_modules ফোল্ডার তৈরি করে, যা প্রচুর ডিস্ক স্পেস খেয়ে ফেলে।
  • ডিপেন্ডেন্সি ম্যানেজমেন্টে জটিলতা: npm-এর ফ্ল্যাট node_modules স্ট্রাকচার কখনো কখনো ভুল ডিপেন্ডেন্সি রেজোলিউশনের কারণ হয়।

pnpm ব্যবহার করার পর এই সমস্যাগুলো সমাধান হয়েছে। এখন আমি স্পষ্টভাবে বুঝতে পারি, কেন pnpm npm-এর থেকে এগিয়ে।


স্টেপ ৩: pnpm-এর শীর্ষ ৫টি সুবিধা

১. দ্রুত প্যাকেজ ইনস্টলেশন

pnpm npm-এর তুলনায় অনেক দ্রুত। এটি প্যাকেজ ইনস্টল করার সময় ক্যাশিং মেকানিজম ব্যবহার করে, যার ফলে বারবার একই প্যাকেজ ডাউনলোড করতে হয় না। আমার একটি প্রজেক্টে, যেখানে npm দিয়ে ইনস্টলেশনে ২ মিনিট লাগত, pnpm তা ৩০ সেকেন্ডে করে ফেলেছে!

২. ডিস্ক স্পেস সাশ্রয়

pnpm একটি গ্লোবাল স্টোর ব্যবহার করে, যেখানে সব প্যাকেজ একবারই সেভ হয়। প্রতিটি প্রজেক্টের জন্য আলাদা node_modules ফোল্ডারের পরিবর্তে, pnpm হার্ড লিঙ্ক ব্যবহার করে সেই গ্লোবাল স্টোর থেকে প্যাকেজ রেফার করে। ফলে আমার ল্যাপটপে ৫টি প্রজেক্টে node_modules ফোল্ডারের সাইজ ৩ জিবি থেকে কমে ১ জিবির নিচে চলে এসেছে।

৩. কঠোর ডিপেন্ডেন্সি ম্যানেজমেন্ট

npm-এর ফ্ল্যাট node_modules স্ট্রাকচারে কখনো কখনো ভুল প্যাকেজ ভার্সন ইনস্টল হয়ে যায়, যাকে বলা হয় “Phantom Dependencies”। pnpm এই সমস্যা সমাধান করে। এটি একটি স্ট্রিক্ট ডিপেন্ডেন্সি ট্রি ফলো করে, যার ফলে আপনার প্রজেক্ট সবসময় সঠিক ভার্সনের প্যাকেজ ব্যবহার করে।

৪. npm-এর সাথে সামঞ্জস্যপূর্ণ

pnpm npm-এর সাথে পুরোপুরি সামঞ্জস্যপূর্ণ। আপনি npm-এর যেকোনো কমান্ড (যেমন npm install, npm run) pnpm দিয়েও চালাতে পারেন। শুধু npm এর জায়গায় pnpm লিখলেই হলো। এটি আমার জন্য সুইচ করাটা খুব সহজ করে দিয়েছে।

৫. মনোরেপোর জন্য আদর্শ

আপনি যদি মনোরেপো (একাধিক প্রজেক্ট একই রিপোজিটরিতে) নিয়ে কাজ করেন, তাহলে pnpm আপনার জন্য আদর্শ। এটি Yarn-এর মতো মনোরেপো সাপোর্ট করে এবং npm-এর তুলনায় অনেক বেশি দক্ষ।


স্টেপ ৪: কীভাবে pnpm শুরু করবেন?

pnpm শুরু করা খুবই সহজ। এখানে ধাপে ধাপে গাইড দেওয়া হলো:

  1. pnpm ইনস্টল করুন গ্লোবালি pnpm ইনস্টল করতে টার্মিনালে নিচের কমান্ডটি চালান:
   npm install -g pnpm
Enter fullscreen mode Exit fullscreen mode
  1. নতুন প্রজেক্টে pnpm ব্যবহার একটি নতুন প্রজেক্ট ফোল্ডারে গিয়ে নিচের কমান্ড চালান:
   pnpm init
Enter fullscreen mode Exit fullscreen mode
  1. প্যাকেজ ইনস্টল করুন প্যাকেজ ইনস্টল করতে npm-এর মতোই কমান্ড ব্যবহার করুন:
   pnpm install <package-name>
Enter fullscreen mode Exit fullscreen mode
  1. স্ক্রিপ্ট রান করুন package.json-এ থাকা স্ক্রিপ্টগুলো চালাতে:
   pnpm run <script-name>
Enter fullscreen mode Exit fullscreen mode

স্টেপ ৫: কেন আপনারও pnpm-এ সুইচ করা উচিত?

আপনি যদি একজন ডেভেলপার হন, তাহলে সময় এবং রিসোর্স সাশ্রয় আপনার জন্য গুরুত্বপূর্ণ। pnpm আপনাকে দ্রুত ইনস্টলেশন, কম ডিস্ক স্পেস ব্যবহার, এবং নির্ভরযোগ্য ডিপেন্ডেন্সি ম্যানেজমেন্টের মাধ্যমে এই সুবিধাগুলো দেয়। এছাড়া, এটি npm-এর সাথে সামঞ্জস্যপূর্ণ হওয়ায় সুইচ করতে কোনো ঝামেলা নেই।

আমার অভিজ্ঞতায়, pnpm ব্যবহারের পর প্রজেক্ট বিল্ড এবং ডেভেলপমেন্ট প্রক্রিয়া অনেক মসৃণ হয়েছে। আপনি যদি বড় প্রজেক্ট বা মনোরেপো নিয়ে কাজ করেন, তাহলে pnpm আপনার প্রোডাকটিভিটি বাড়িয়ে দেবে।


স্টেপ ৬: কিছু সাধারণ প্রশ্নের উত্তর

১. pnpm কি npm-এর চেয়ে জটিল?

না, pnpm npm-এর মতোই সহজ। কমান্ডগুলো প্রায় একই, এবং ডকুমেন্টেশন খুবই স্পষ্ট।

২. pnpm কি সব প্রজেক্টের জন্য উপযুক্ত?

হ্যাঁ, ছোট থেকে বড় সব ধরনের প্রজেক্টে pnpm ব্যবহার করা যায়। বিশেষ করে বড় প্রজেক্টে এর সুবিধা বেশি।

৩. Yarn-এর সাথে pnpm-এর তুলনা কেমন?

Yarn-ও দ্রুত এবং দক্ষ, কিন্তু pnpm ডিস্ক স্পেস ব্যবহারে এবং ডিপেন্ডেন্সি ম্যানেজমেন্টে Yarn-এর থেকে এগিয়ে।


npm থেকে pnpm-এ সুইচ করা আমার ডেভেলপমেন্ট অভিজ্ঞতাকে অনেক উন্নত করেছে। এটি দ্রুত, ডিস্ক স্পেস বাঁচায়, এবং ডিপেন্ডেন্সি ম্যানেজমেন্টে আরও নির্ভরযোগ্য। আপনি যদি একজন জাভাস্ক্রিপ্ট ডেভেলপার হন, তাহলে pnpm-এর দিকে একবার চোখ বুলিয়ে দেখুন। আমি নিশ্চিত, এটি আপনার প্রোডাকটিভিটি বাড়িয়ে দেবে।

আপনি কি pnpm ব্যবহার করেছেন? আপনার অভিজ্ঞতা কেমন? কমেন্টে জানান! এবং আরও ডেভেলপমেন্ট টিপসের জন্য আমাদের ব্লগ ফলো করুন।


“npm vs pnpm”, “pnpm কেন ব্যবহার করবেন”, “জাভাস্ক্রিপ্ট প্যাকেজ ম্যানেজার”, “pnpm টিউটোরিয়াল বাংলা”

Top comments (0)