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 pnpm
1यदि कमांड सफलतापूर्वक चलता है, तो आमतौर पर कोई रिस्पांस नहीं मिलेगा। इसका मतलब है कि
corepack
नेpnpm
को आपके सिस्टम में जोड़ दिया है।पुष्टि करें कि
pnpm
सफलतापूर्वक सक्षम हो गया है और उसका वर्शन नंबर देखें:bashpnpm -v
1यह कमांड चलाने पर आपको मौजूदा
pnpm
का वर्शन नंबर दिखेगा, उदाहरण के लिए:bash9.1.0
1अगर टर्मिनल में वर्शन नंबर दिख जाए, तो इसका मतलब है कि
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 install
1
2
2
pnpm
ग्लोबल स्टोरेज को चेक करेगा, जो पैकेज नहीं हैं उन्हें डाउनलोड करेगा, और प्रोजेक्ट के node_modules
में लिंक बनाएगा।
नई डिपेंडेंसी जोड़ना
अगर आपको प्रोजेक्ट में कोई नया पैकेज जैसे lodash
इंस्टॉल करना हो:
bash
pnpm add lodash
1
अगर ग्लोबल स्टोरेज में lodash
नहीं है, तो उसे डाउनलोड करेगा, लिंक बनाएगा, और अपने आप package.json
तथा pnpm-lock.yaml
फाइल अपडेट कर देगा।
डिपेंडेंसी हटाना
अगर अब आपको किसी डिपेंडेंसी, जैसे lodash
, की जरूरत नहीं:
bash
pnpm remove lodash
1
यह कमांड lodash
को प्रोजेक्ट डिपेंडेंसी से हटा देगा और package.json
तथा pnpm-lock.yaml
फाइलें अपडेट कर देगा।
स्क्रिप्ट चलाना
pnpm
के जरिए आप package.json
की scripts
फील्ड में दिए गए किसी भी स्क्रिप्ट को चला सकते हैं:
bash
pnpm run dev
# या संक्षेप में
pnpm dev
1
2
3
2
3
पैकेज कमांड चलाना (pnpx)
npx
की तरह, pnpm
भी pnpx
(या डायरेक्ट pnpm exec
) देता है जिससे आप प्रोजेक्ट लोकल node_modules/.bin
डायरेक्टरी के कमांड बिना ग्लोबल इंस्टॉल किए चला सकते हैं:
bash
pnpm exec webpack --version
# या संक्षेप में
pnpx webpack --version
1
2
3
2
3
सारांश
corepack enable pnpm
कमांड की सहायता से आप ServBay के Node.js एन्वायरनमेंट में आसानी से pnpm
को सक्षम कर सकते हैं। pnpm
की शक्तिशाली डिपेंडेंसी मैनेजमेंट के सहारे, आप Node.js प्रोजेक्ट्स में डिपेंडेंसी इंस्टॉलेशन की स्पीड और डेवेलपमेंट की उत्पादकता को काफी बढ़ा सकते हैं, साथ ही बेशकीमती डिस्क स्पेस भी बचा सकते हैं। बेहतर डेवेलपमेंट अनुभव चाहने वाले ServBay यूज़र्स के लिए, pnpm
निश्चित रूप से एक बेहतरीन टूल है।