2012-08-27 13 views
13

क्या मैं npm के साथ वैश्विक स्तर पर उसी node मॉड्यूल के एकाधिक संस्करण स्थापित कर सकता हूं?उसी node.js मॉड्यूल के एकाधिक संस्करणों को कैसे स्थापित करें?

+0

आप इसे सुविधाजनक बनाने के लिए नोड के लिए संस्करण प्रबंधक का उपयोग करने में सक्षम हो सकते हैं: https://github.com/isaacs/nave – mikefrey

+0

और आप इसे कैसे सौदा करेंगे? इसकी आवश्यकता है? चलाओ? – Vinz243

+0

@ फ्रीडे, https://github.com/isaacs/nave जानना दिलचस्प है, लेकिन मुझे लगता है कि आसान स्वैपिंग (और संयोजन?) '_nodejs_' के कई संस्करणों के बारे में नहीं, क्यू ने क्या पूछा: 'node _module_'s, और यहां' वैश्विक रूप से npm 'के साथ। तो क्या आप क्यू के 'मॉड्यूल' भाग को चूक गए हैं? या यदि नहीं, तो कृपया जो समाधान आप देख रहे हैं उसका विस्तार करें (मैं इसके लिए समाधान भी चाहता हूं), आदर्श रूप से विकी मोड सहित इस क्यू के अपने उत्तर के रूप में अगर उत्तर दूसरों को इसे विस्तारित करने में सहायता कर सकता है। धन्यवाद। –

उत्तर

1

वर्तमान में नहीं।

(संबंधित: https://github.com/creationix/nvm: आप एकाधिक NVM (नोड संस्करण प्रबंधक के साथ प्रयोग करके) नोड के संस्करणों स्थापित कर सकते हैं)

+1

मुझे लगता है कि सवाल पूछा जा रहा था एक विशेष नोड मॉड्यूल के कई संस्करणों को स्थापित करने के बारे में। एनवीएम नहीं है जो आपको नोड रनटाइम के कई संस्करणों को स्थापित करने के लिए डिज़ाइन किया गया है? –

+0

काफी सही, उत्तर अपडेट करेगा –

3

मुझे नहीं लगता कि वहाँ एक (अच्छा) तरीका यह है है।

हालांकि, मुझे लगता है कि आपका उपयोग केस यह है: आपके पास दो परियोजनाएं हैं, जिन्हें वैश्विक रूप से स्थापित पैकेज के विभिन्न संस्करणों की आवश्यकता होती है।

इस तरह के मामलों के लिए, मैं आमतौर पर वैश्विक रूप से पैकेज स्थापित करने से बचता हूं, और उन्हें स्थानीय रूप से इंस्टॉल करता हूं (-g के बिना)। उदाहरण के लिए, यदि आप किसी दिए गए परियोजना के लिए "मोचा" पैकेज का एक विशिष्ट पुराने संस्करण स्थापित करने के लिए चाहता था, आप

cd ~/src/myproject 
npm install --save-dev [email protected]^1.0.0 

(ध्यान दें कि हम -g यहाँ का उपयोग नहीं कर रहे हैं।) करना चाहते हैं तो लगता है कि यह फोन इसलिए:

./node_modules/.bin/mocha 
1

हालांकि यह संभव है, इसे प्रबंधित करने के लिए शायद अपनी स्क्रिप्ट लिखने के बिना बनाए रखना मुश्किल हो जाएगा। इसके लिए, मुझे लगता है कि आप मैकोज़ या लिनक्स का उपयोग कर रहे हैं, और आपके पास /usr/local/bin

जब आप वैश्विक मॉड्यूल स्थापित करते हैं, तो npm मॉड्यूल और इसकी निर्भरताओं को उसी स्थान पर रखता है जो नोड स्थापित होता है । आमतौर पर /usr/local/lib/node_modules, फिर उस मॉड्यूल के /usr/local/bin में एक प्रतीकात्मक लिंक बनाता है।

उदाहरण के लिए, आप nodemon इंस्टॉल करना चाहते हैं, तो आप npm install -g nodemon चलाते हैं। NPM /usr/local/lib/node_modules/nodemon को nodemon स्थापित करता है और कहा कि /usr/local/lib/node_modules/nodemon/bin/nodemon.js

के लिए अंक देता है मान लेते हैं कि तुम सिर्फ [email protected] स्थापित /usr/local/bin/nodemon में एक सिमलिंक बनाता है, लेकिन किसी कारण से आप भी [email protected] की जरूरत है।

उन दोनों को एक ही बार में स्थापित करने के लिए, लेकिन नहीं विरोध है तो आप करने में सक्षम हो सकता है:

  1. nodemon18
  2. को nodemon से nodemon के अपने मौजूदा प्रतिलिपि के लिए निर्देशिका का नाम बदलने का उपयोग कर एक नया nodemon18 सिमलिंक बनाने ln -s /usr/local/bin/nodemon18 /usr/local/lib/node_modules/nodemon/bin/nodemon.js (मत भूलना यह निष्पादन योग्य बनाने के लिए) npm install -g [email protected]
के माध्यम से
  • [email protected] स्थापित

    अब, आपके टर्मिनल से nodemon चलाएगा [email protected] चलाएगा और nodemon18 चलाएगा [email protected] चलाएगा।

    वाईएमएमवी। मैं वास्तव में ऐसा करने की सिफारिश नहीं करता हूं।

  • संबंधित मुद्दे