चूँकि यह एक दो साल का है और ऐसा करना संभव नहीं लगता है (अकेले npm का उपयोग करके), इस समस्या का एक समाधान नेक्सस रिपोजिटरी प्रबंधक (सोनाटाइप से) का उपयोग करना है। नेक्सस कई रिपॉजिटरी का समर्थन करता है, जिससे आप उन्हें ऑर्डर कर सकते हैं, और गति में सुधार के लिए प्रॉक्सी / कैश भी कर सकते हैं।
एक नि: शुल्क संस्करण और प्रो / सशुल्क संस्करण मौजूद हैं। इसका समर्थन करने वाली विशेषता का वर्णन यहां किया गया है:
https://help.sonatype.com/repomanager3/node-packaged-modules-and-npm-registries
प्रासंगिक जानकारी को नीचे डुप्लिकेट किया गया है, यदि / जब उपरोक्त URL / लिंक काम करना बंद कर देता है तो जानकारी अभी भी यहाँ है।
एक रिपॉजिटरी समूह किसी भी और ग्राहक पक्ष विन्यास की आवश्यकता के बिना, अपने उपयोगकर्ता के लिए रिपॉजिटरी प्रबंधक से रिपॉजिटरी को अपने सभी npm रजिस्ट्रियों को उजागर करने के लिए अनुशंसित तरीका है। एक रिपॉजिटरी समूह आपको कई प्रॉक्सी और होस्ट किए गए रिपॉजिटरी की एकत्रित सामग्री को एक URL से npm और अन्य टूल के साथ उजागर करने की अनुमति देता है।
यह आपको निजी npm रजिस्ट्रियां बनाने की सुविधा देता है
एक निजी एनपीएम रजिस्ट्री का उपयोग आपके अपने पैकेजों के साथ-साथ तीसरे पक्ष के पैकेजों को अपलोड करने के लिए किया जा सकता है।
तथा
अपने डेवलपर्स और CI सर्वर के लिए डुप्लिकेट डाउनलोड को कम करने और डाउनलोड की गति में सुधार करने के लिए, आपको https://registry.npmjs.org पर होस्ट की गई रजिस्ट्री को प्रॉक्सी करना चाहिए । डिफ़ॉल्ट रूप से npm इस रजिस्ट्री को सीधे एक्सेस करता है। आप किसी अन्य रजिस्ट्रियों को भी प्रॉक्सी कर सकते हैं जिनकी आपको आवश्यकता है।
इस काम को पाने के लिए आपके द्वारा की जाने वाली चीजों की एक त्वरित बुलेटेड सूची है:
नेक्सस स्थापित करें
एक स्थानीय / निजी रेपो बनाएं (या किसी अन्य सर्वर पर अपने निजी रेपो को इंगित करें)
एक ग्रुप बनाएं जो आपके प्राइवेट रेपो और पब्लिक रेपो को सूचीबद्ध करे।
अभी बनाए गए "ग्रुप" को इंगित करने के लिए अपनी $ HOME / .npmrc फ़ाइल को कॉन्फ़िगर करें।
स्थानीय रेपो में अपने निजी npm संकुल प्रकाशित करें।
उपयोगकर्ता अब एक बार सेटअप चला सकते हैं।
npm config set registry https://nexus/content/groups/GROUP
- तब उपयोगकर्ता सार्वजनिक या निजी पैकेज दोनों के माध्यम से स्थापित कर सकते हैं
npm install
।
npm install my-private-package
npm install lodash any-other-public-package
और आपके सार्वजनिक और निजी पैकेज दोनों को एक साधारण npm install
कमांड के माध्यम से स्थापित किया जा सकता है । Nexus समूह में कॉन्फ़िगर किए गए प्रत्येक रेपो को खोजता हुआ पैकेज पाता है और परिणाम लौटाता है। तो npm अभी भी सोचता है कि सिर्फ एक रजिस्ट्री है लेकिन पर्दे के पीछे कई रिपोज का इस्तेमाल किया जा रहा है।
महत्वपूर्ण नोट: जब आप अपने घटकों को प्रकाशित करते हैं, तो आपको npm publish --registry https://nexus/content/repositories/private-repo my-private-package
कमांड निर्दिष्ट करने की आवश्यकता होगी ताकि आपका पैकेज सही रेपो में प्रकाशित हो।