ServBay में pnpm को कैसे सक्षम और इस्तेमाल करें
pnpm एक आधुनिक और कुशल Node.js पैकेज प्रबंधन टूल है, जिसे पारंपरिक पैकेज मैनेजर (npm और yarn जैसे) द्वारा डिपेंडेंसियों को हैंडल करते समय आने वाली समस्याओं को हल करने के लिए डिज़ाइन किया गया है। कंटेंट-एड्रेस्ड फाइल सिस्टम तथा हार्ड लिंक और सिम्बॉलिक लिंक के जरिए, pnpm डिस्क स्पेस का उपयोग काफी कम करता है और इंस्टॉलेशन स्पीड को काफी बढ़ाता है। अगर आप ServBay के साथ Node.js डेवेलपमेंट करते हैं, तो pnpm का सही तरीके से उपयोग प्रोजेक्ट की डिपेंडेंसी मैनेजमेंट को और भी प्रभावी बना सकता है।
ServBay द्वारा दिए गए Node.js सॉफ़्टवेयर पैकेज में corepack शामिल है, जो Node.js का एक ऑफिशियल एक्सपेरिमेंटल टूल है। यह आपको प्रोजेक्ट के लिए किसी भी निश्चित पैकेज मैनेजर वर्शन (npm, yarn, pnpm आदि) को मैनेज और चालू करने की सुविधा देता है। सामान्यतः, ServBay का Node.js इंस्टॉल करने के बाद, आप corepack कमांड के ज़रिए pnpm को सक्षम कर सकते हैं।
pnpm को सक्षम करना
अगर आपको pnpm कमांड डायरेक्टली उपलब्ध नहीं है, तो इसका मतलब है कि आपने अभी तक corepack के ज़रिए इसे सक्षम नहीं किया है। इसे ऑन करने के लिए नीचे दिए गए स्टेप्स फॉलो करें:
टर्मिनल एप्लिकेशन खोलें।
नीचे दिया गया कमांड चलाएँ और
corepackके ज़रिएpnpmको सक्षम करें:bashcorepack enable pnpm1यदि कमांड सफलतापूर्वक चलता है, तो आमतौर पर कोई रिस्पांस नहीं मिलेगा। इसका मतलब है कि
corepackनेpnpmको आपके सिस्टम में जोड़ दिया है।पुष्टि करें कि
pnpmसफलतापूर्वक सक्षम हो गया है और उसका वर्शन नंबर देखें:bashpnpm -v1यह कमांड चलाने पर आपको मौजूदा
pnpmका वर्शन नंबर दिखेगा, उदाहरण के लिए:bash9.1.01अगर टर्मिनल में वर्शन नंबर दिख जाए, तो इसका मतलब है कि
pnpmइस्तेमाल के लिए तैयार है।
corepack डाउनलोड प्रोम्प्ट
अगर आप pnpm कमांड का इस्तेमाल करते समय ऐसा कोई मैसेज देखते हैं, तो इसका मतलब है कि corepack आपके लिए जरूरी वर्शन डाउनलोड या अपडेट कर रहा है। यह corepack की सामान्य प्रक्रिया है, जिससे आप उस प्रोजेक्ट के लिये जरूरी या नवीनतम pnpm वर्शन उपयोग कर सकें।
bash
$ pnpm -v
! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-9.0.6.tgz
? Do you want to continue? [Y/n]1
2
3
2
3
यहाँ, Y दबाएँ और एंटर करें—इससे corepack डाउनलोड को अनुमति मिल जाएगी और कमांड आगे चलेगा। डाउनलोड पूरा होते ही कमांड सामान्य रूप से चलेगा और वर्शन नंबर (या आपके द्वारा दिये अन्य pnpm कमांड का परिणाम) दिख जाएगा।
pnpm के मुख्य फायदे और उपयोग के उदाहरण
pnpm का उद्देश्य है — डिपेंडेंसियों को अधिक कुशलता से मैनेज करना। यह सभी पैकेजों को एक ग्लोबल कंटेंट-एड्रेस्ड स्टोरेज में स्टोर करता है, जिससे हर वर्शन केवल एक ही बार सेव होता है। जब किसी प्रोजेक्ट को कोई डिपेंडेंसी चाहिए, तो pnpm ग्लोबल स्टोरेज से हार्ड-लिंक बनाता है, और प्रोजेक्ट के node_modules फोल्डर में सिम्बॉलिक लिंक के ज़रिए एक फलेट स्ट्रक्चर तैयार करता है। लेकिन यह npm के "ghost dependency" जैसी समस्या नहीं पैदा करता; pnpm का स्ट्रिक्ट आइसोलेशन सिस्टम हर प्रोजेक्ट को सिर्फ उसकी डायरेक्ट डिपेंडेंसियाँ एक्सेस करने देता है।
इस तरीके से आपको बहुत से फायदे मिलते हैं:
- डिस्क स्पेस की बचत: अलग-अलग प्रोजेक्ट में एक ही वर्शन का इस्तेमाल होने पर रिपीटेड स्टोरेज की जरूरत नहीं।
- फास्ट इंस्टॉलेशन: ज्यादातर मामलों में डिपेंडेंसियाँ ग्लोबल स्टोरेज में पहले से होती हैं, तो केवल लिंक बनते हैं, जिससे इंस्टॉलेशन तेजी से होता है।
- सख्त डिपेंडेंसी स्ट्रक्चर: ghost dependency जैसी समस्याओं से बचाता है और डिपेंडेंसी रिलेशन क्लीन तथा कंट्रोल में रहता है।
नीचे ServBay एन्वायरनमेंट में pnpm के कुछ कॉमन कमांड उदाहरण हैं:
मान लीजिए आपका प्रोजेक्ट ServBay की वेबसाइट रूट डायरेक्टरी में /Applications/ServBay/www/my-servbay-app के सबडायरेक्टरी में है।
प्रोजेक्ट डिपेंडेंसी इंस्टॉल करना
प्रोजेक्ट फोल्डर में जाएँ और package.json में नोट की गई सभी डिपेंडेंसियों को इंस्टॉल करने के लिए यह कमांड चलाएँ:
bash
cd /Applications/ServBay/www/my-servbay-app
pnpm install1
2
2
pnpm ग्लोबल स्टोरेज को चेक करेगा, जो पैकेज नहीं हैं उन्हें डाउनलोड करेगा, और प्रोजेक्ट के node_modules में लिंक बनाएगा।
नई डिपेंडेंसी जोड़ना
अगर आपको प्रोजेक्ट में कोई नया पैकेज जैसे lodash इंस्टॉल करना हो:
bash
pnpm add lodash1
अगर ग्लोबल स्टोरेज में lodash नहीं है, तो उसे डाउनलोड करेगा, लिंक बनाएगा, और अपने आप package.json तथा pnpm-lock.yaml फाइल अपडेट कर देगा।
डिपेंडेंसी हटाना
अगर अब आपको किसी डिपेंडेंसी, जैसे lodash, की जरूरत नहीं:
bash
pnpm remove lodash1
यह कमांड lodash को प्रोजेक्ट डिपेंडेंसी से हटा देगा और package.json तथा pnpm-lock.yaml फाइलें अपडेट कर देगा।
स्क्रिप्ट चलाना
pnpm के जरिए आप package.json की scripts फील्ड में दिए गए किसी भी स्क्रिप्ट को चला सकते हैं:
bash
pnpm run dev
# या संक्षेप में
pnpm dev1
2
3
2
3
पैकेज कमांड चलाना (pnpx)
npx की तरह, pnpm भी pnpx (या डायरेक्ट pnpm exec) देता है जिससे आप प्रोजेक्ट लोकल node_modules/.bin डायरेक्टरी के कमांड बिना ग्लोबल इंस्टॉल किए चला सकते हैं:
bash
pnpm exec webpack --version
# या संक्षेप में
pnpx webpack --version1
2
3
2
3
सारांश
corepack enable pnpm कमांड की सहायता से आप ServBay के Node.js एन्वायरनमेंट में आसानी से pnpm को सक्षम कर सकते हैं। pnpm की शक्तिशाली डिपेंडेंसी मैनेजमेंट के सहारे, आप Node.js प्रोजेक्ट्स में डिपेंडेंसी इंस्टॉलेशन की स्पीड और डेवेलपमेंट की उत्पादकता को काफी बढ़ा सकते हैं, साथ ही बेशकीमती डिस्क स्पेस भी बचा सकते हैं। बेहतर डेवेलपमेंट अनुभव चाहने वाले ServBay यूज़र्स के लिए, pnpm निश्चित रूप से एक बेहतरीन टूल है।
