पैकेज मैनेजर नोड की सबसे अच्छी विशेषताओं में से एक है। नोड संकुल को स्थापित और प्रबंधित करने के कई अलग-अलग तरीके हैं। यहां, हम एक पैकेज मैनेजर या एक से अधिक पैकेज मैनेजर का उपयोग करने के पेशेवरों और विपक्षों को देखेंगे, और उन्हें एक साथ उपयोग करने के कुछ बेहतरीन तरीके देखेंगे।
आप किस पैकेज मैनेजर से पूछते हैं? पता लगाने के लिए पढ़ें।
पैकेज प्रबंधक क्या हैं?
सॉफ्टवेयर विकास की दुनिया में, निर्भरता वह है जो आपको अपने प्रोजेक्ट को चलाने के लिए चाहिए। वे नुस्खा में सामग्री की तरह हैं: उनके बिना कुछ भी नहीं होता है।
उदाहरण के लिए, यदि आप एक ऐप लिख रहे हैं जो जावास्क्रिप्ट का उपयोग करता है, और यह कुछ कार्यों से एक्सेस करना चाहता है एक पुस्तकालय जिसे jQuery कहा जाता है (जो कई वेबसाइटें एक बार उपयोग की जाती हैं), तो jQuery आपकी निर्भरताओं में से एक होगा। आपको इसे स्थापित करने की आवश्यकता होगी ताकि जब कोई आपकी साइट पर जाए, तो वे आपके द्वारा बनाए गए शानदार एनिमेशन या इंटरैक्शन देख सकें!
पैकेज प्रबंधक हमारे लिए निर्भरताओं को प्रबंधित करके परियोजनाओं के बीच इन संबंधों को प्रबंधित करने में सहायता करते हैं, इसलिए हमें उन्हें हर बार मैन्युअल रूप से डाउनलोड करने के बारे में चिंता करने की आवश्यकता नहीं है जब हम कुछ नया जोड़ना या अपडेट करना चाहते हैं - वे यह भी सुनिश्चित करते हैं कि सब कुछ एक साथ ठीक से काम करता है और एक बार स्थापित होने पर सुचारू रूप से चलता है (जो कभी-कभी आसान होता है पूर्ण)।
नोड एनपीएम नामक पैकेज मैनेजर के साथ प्री-पैकेज्ड आता है
एनपीएम डिफ़ॉल्ट पैकेज मैनेजर है, और इस तरह, यह नोड रनटाइम में बनाया गया है। आप गिटहब से पैकेज स्थापित करने के लिए एनपीएम का उपयोग कर सकते हैं या NPM सीधे। आप अपने पैकेज को इस साइट पर भी प्रकाशित कर सकते हैं ताकि अन्य लोग एनपीएम के अपने संस्करण का उपयोग करके उन्हें स्थापित कर सकें।
एनपीएम का उपयोग सिर्फ संकुल स्थापित करने के लिए नहीं किया जाता है; यह आपके एप्लिकेशन कोड बेस में दो या दो से अधिक आवश्यक पुस्तकालयों या मॉड्यूल के बीच निर्भरता समाधान और संस्करण विरोधों को भी संभालता है।
इसका मतलब यह है कि अगर किसी चीज़ के कई संस्करण हैं एक्सप्रेस आपके सर्वर पर चल रहा है किसी भी समय, एनपीएम यह सुनिश्चित करेगा कि प्रत्येक उदाहरण को वह मिले जो उसे बिना किसी विरोध के चाहिए इसी तरह का काम करने वाले अन्य उदाहरण - और ये सभी आपको सरलता से परे कुछ विशेष करने की आवश्यकता के बिना कॉलिंग ज़रूरत होना() जरूरत पड़ने पर किसी वस्तु पर!
एनपीएम एक अविश्वसनीय रूप से शक्तिशाली उपकरण है, और इसके साथ आरंभ करना आसान है। लेकिन यदि आप नोड और जावास्क्रिप्ट के लिए नए हैं, तो यह जानना चुनौतीपूर्ण हो सकता है कि आपके उपयोग के लिए कौन से उपकरण उपलब्ध हैं—और किसी दिए गए प्रोजेक्ट के लिए कौन से उपकरण सर्वोत्तम हैं।
एनपीएम के साथ मुख्य समस्या यह है कि यह संकुल को स्थापित करने में धीमा है। यदि आप केवल कभी-कभी स्क्रिप्ट या दो चला रहे हैं तो यह एक बड़ा सौदा नहीं है, लेकिन यह अविश्वसनीय हो सकता है निराशा होती है यदि आप एक संपूर्ण एप्लिकेशन बनाने की कोशिश कर रहे हैं जो दर्जनों विभिन्न पुस्तकालयों का उपयोग करता है और औजार।
यार्न और पीएनपीएम एनपीएम से तेज हैं
यार्न एनपीएम का एक सुरक्षित और विश्वसनीय विकल्प है जो आकस्मिक ओवरराइट को रोकने के लिए लॉक फ़ाइल का उपयोग करता है और यह सुनिश्चित करता है कि संकुल स्थापित करते समय आपकी निर्भरता सही ढंग से हल हो जाती है।
इसमें एनपीएम की तुलना में तेजी से स्थापित होने का समय भी है, जो इसे विशेष रूप से उपयोगी बनाता है यदि आप बड़ी परियोजनाओं के साथ काम कर रहे हैं जिनमें बहुत अधिक निर्भरता वाले कई मॉड्यूल हैं।
पीएनपीएम यार्न और एनपीएम दोनों के लिए एक विकल्प है, लेकिन यह अभी तक उतना लोकप्रिय नहीं है क्योंकि इसमें कुछ विशेषताएं नहीं हैं (जैसे लॉक फाइलें)। हालांकि, इसके डेवलपर्स का दावा है कि पीएनपीएम अपनी हल्की प्रकृति के कारण यार्न या एनपीएम की तुलना में चार गुना तेजी से पैकेज स्थापित कर सकता है; इसका मतलब है कि आपके कंप्यूटर पर भी कम डिस्क स्थान का उपयोग!
यदि आप एक ऐसी परियोजना का निर्माण कर रहे हैं जिसके लिए केवल कुछ निर्भरताओं की आवश्यकता है, तो यार्न या एनपीएम शायद पर्याप्त होगा। हालाँकि, यदि आप कई मॉड्यूल और निर्भरताओं वाली बड़ी परियोजनाओं के साथ काम कर रहे हैं तो PNPM आपके लिए बेहतर विकल्प हो सकता है।
एकाधिक पैकेज प्रबंधकों का उपयोग करने के लाभ
एक एकल पैकेज प्रबंधक एक बार में किसी दिए गए पुस्तकालय के केवल एक संस्करण को संभाल सकता है। यदि आप अन्य परियोजनाओं के लिए या विभिन्न वातावरणों में एक ही पुस्तकालय के दो अलग-अलग संस्करणों का उपयोग करना चाहते हैं (उदाहरण के लिए, उत्पादन बनाम उत्पादन)। विकास), तो आपको अपने सिस्टम पर स्थापित दो अलग-अलग पैकेजों की आवश्यकता होगी।
यदि दोनों पैकेज एक ही समय में एक ही निर्भरता के अपने संस्करण को अद्यतन करने का प्रयास करते हैं, तो इससे विरोध हो सकता है। एकाधिक पैकेज प्रबंधकों का उपयोग करने का मतलब है कि आपके पास अधिक नियंत्रण है कि कौन सी निर्भरताएं स्थापित हैं और कहां से इस प्रकार के संघर्षों से बचने में मदद मिलती है।
एक और लाभ यह है कि कई पैकेज प्रबंधकों का उपयोग करते समय, प्रत्येक अपनी अनूठी विशेषताओं का सेट प्रदान करेगा। कुछ दूसरों की तुलना में तेज़ हो सकते हैं; कुछ में बेहतर निर्भरता प्रबंधन क्षमताएं हो सकती हैं; अन्य कुछ फ्रेमवर्क जैसे ReactJS या VueJS आदि के भीतर अनुप्रयोगों के विकास के लिए अधिक अनुकूल हो सकते हैं ...
अंत में, कई पैकेज प्रबंधकों का उपयोग करने से निर्भरता खोजने और स्थापित करने में लगने वाले समय को कम करके अपने डेवलपर उत्पादकता में सुधार करने में मदद मिल सकती है। ऐसा इसलिए है क्योंकि प्रत्येक पैकेज मैनेजर को उपयोग के मामलों के एक विशिष्ट सेट के साथ डिजाइन किया जाएगा (उदाहरण के लिए, गति बनाम गति)। सुरक्षा बनाम। निर्भरता प्रबंधन, आदि...)
उन्हें विश्व स्तर पर स्थापित करके एकाधिक पैकेज प्रबंधकों का उपयोग करें
कमांड लाइन का उपयोग करके, आप निर्दिष्ट कर सकते हैं कि आप किसी विशिष्ट प्रोजेक्ट के लिए किस पैकेज मैनेजर का उपयोग करना चाहते हैं। अपनी मशीन पर एकाधिक पैकेज प्रबंधक सेट अप करें:
- एनपीएम नोड के साथ पहले से पैक किया हुआ आता है। यह आपको कमांड लाइन से अन्य पैकेज (और पैकेज प्रबंधक) स्थापित करने और एनपीएम के साथ आपकी सभी परियोजनाओं में निर्भरता प्रबंधित करने की अनुमति देगा। यदि आप एनपीएम स्क्रिप्ट को एक ब्राउज़र (जैसे, वेबपैक) में चलाना चाहते हैं तो यह भी मददगार है, क्योंकि ब्राउज़र एनपीएम के साथ पहले से इंस्टॉल नहीं आते हैं!
- एनपीएम का उपयोग करके विश्व स्तर पर यार्न स्थापित करें। जावास्क्रिप्ट परियोजनाओं के भीतर निर्भरताओं के प्रबंधन के लिए यह एक और लोकप्रिय विकल्प है; एनपीएम पर इसके कुछ फायदे हैं जो इसे कुछ प्रकार की परियोजनाओं या टीमों के लिए बेहतर बना सकते हैं
- अंत में, पीएनपीएम स्थापित करें। यह पैकेज मैनेजर एनपीएम का एक कांटा है जिसे तेज और अधिक स्थिर होने के लिए डिज़ाइन किया गया है। इसमें कुछ अतिरिक्त सुविधाएँ भी हैं जो कुछ प्रकार की परियोजनाओं के लिए उपयोगी हो सकती हैं, जैसे कि GitHub से निर्भरता के लिए समर्थन।
ध्यान दें कि वैश्विक स्थापना का मतलब है कि चयनित पैकेज आपके पूरे सिस्टम के लिए उपलब्ध होगा (आप एक्सेस कर सकते हैं प्रोग्राम कमांड लाइन के माध्यम से कहीं भी), जबकि एक स्थानीय इंस्टॉलेशन को केवल वर्तमान कार्य द्वारा ही एक्सेस किया जा सकता है निर्देशिका।
आप एकाधिक पैकेज प्रबंधकों का उपयोग कैसे कर सकते हैं, इसके वास्तविक-विश्व उदाहरण
इन उपयोगों की जाँच करें:
1. यार्न और NPM का एक साथ उपयोग किया जा सकता है (उदा. create-react-app)
यह तब उपयोगी होता है जब आप एनपीएम पैकेज के साथ अनुकूलता बनाए रखते हुए यार्न की गति और दक्षता का लाभ उठाना चाहते हैं। यदि आपको लाइब्रेरी के नवीनतम संस्करण की आवश्यकता है जिसे अभी तक यार्न के साथ संगतता के लिए अद्यतन नहीं किया गया है, या यदि कोई अन्य कारण है आपकी टीम अपनी धीमी गति या सीमित फीचर सेट के बावजूद NPM के साथ क्यों बनी रहेगी, तो यह आपके लिए अच्छा काम कर सकता है परियोजना। यह आपके मोनो रेपो सेटअप में दो अलग-अलग निर्भरता वाले पेड़ों से बचने में भी मदद करता है!
2. वैश्विक पैकेजों के लिए यार्न और स्थानीय संस्थापनों के लिए पीएनपीएम का उपयोग करना
जबकि पीएनपीएम सबसे तेज पैकेज मैनेजर है, वैश्विक रूप से स्थापित पैकेजों के लिए इसका उपयोग करना मुश्किल हो सकता है। ऐसा इसलिए है क्योंकि यह एक अलग फ़ाइल संरचना का उपयोग करता है जो विज़ुअल स्टूडियो कोड जैसे कार्यक्रमों के साथ संगतता समस्याएँ पैदा कर सकता है। यहीं पर यार्न आता है। आप इसे अपने विश्व स्तर पर स्थापित पैकेजों के लिए और स्थानीय स्थापनाओं के लिए पीएनपीएम के लिए उपयोग कर सकते हैं। यह समाधान आपके कार्यप्रवाह में बहुत अधिक बदलाव किए बिना दोनों पैकेज प्रबंधकों के लाभ प्राप्त करने का एक अच्छा तरीका है। इस सेटअप के साथ - यदि आप जंगली होना चाहते हैं - आप एनपीएम को अपने सिस्टम से पूरी तरह से हटा सकते हैं (लेकिन एनपीएम को बैकअप के रूप में रखना हमेशा अच्छा होता है)।
3. फॉलबैक के रूप में एनपीएम के साथ पीएनपीएम का उपयोग करना
यदि आप पीएनपीएम का उपयोग करना चाहते हैं तो यह एक अच्छा विकल्प है, लेकिन आप नहीं चाहते कि आपके सभी डेवलपर्स को अभी तक एक नया टूल सीखना पड़े। यह उन्हें एनपीएम के साथ तब तक काम करना जारी रखने की अनुमति देता है जब तक वे पीएनपीएम के साथ सहज नहीं हो जाते हैं और उन्हें अपने काम के लिए इसकी आवश्यकता होती है।
एकाधिक पैकेज प्रबंधकों का उपयोग करने से चीज़ें आसान हो जाती हैं
आप एकाधिक पैकेज प्रबंधकों का उपयोग कर सकते हैं। आप उन्हें विश्व स्तर पर या स्थानीय रूप से स्थापित कर सकते हैं, और यदि आप यह निर्दिष्ट करना चाहते हैं कि किसी विशिष्ट परियोजना के लिए किस पैकेज प्रबंधक का उपयोग किया जाना चाहिए, तो केवल कमांड लाइन का उपयोग करें!
यदि आप अपने सिस्टम पर एकाधिक पैकेज प्रबंधक स्थापित करना चाहते हैं, तो सुनिश्चित करें कि आप Node.js के समान संस्करण का उपयोग कर रहे हैं।
अंत में, हम सोचते हैं कि आपको एक से अधिक पैकेज मैनेजर का उपयोग करना चाहिए। यदि आप पहले से एनपीएम से परिचित हैं तो यह नोड के साथ आरंभ करने और कुछ नए टूल सीखने का एक शानदार तरीका है। यदि आपके पास पहले से नोड स्थापित नहीं है, तो विंडोज़ पर सेटअप आसान है।