मैं nvm का उपयोग करके npm के संस्करण को कैसे बदल सकता हूं?


239

मैं अपने नोड काम के लिए नोडजेएस के नवीनतम संस्करण को स्थापित करने के लिए एनवीएम का उपयोग कर रहा हूं। यह अलग संस्करणों को स्थापित करने और उनके बीच स्विच करने के लिए पूरी तरह से ठीक काम करता है। यह प्रत्येक स्थानीय के भीतर एनपीएम के नवीनतम संस्करण को भी स्थापित करता है ... / नोड फ़ोल्डर के साथ नोड बाइनरी। हालाँकि, एनपीएम के संस्करण को स्विच करने का कोई तरीका नहीं लगता है जिसका मैं उपयोग कर रहा हूं (या कम से कम मैं इसका पता नहीं लगा सकता)।

एकमात्र उपाय जो मैं खुद सोच सकता हूं, वह उस बाइनरी को हटाने के लिए है जिसे वह डिफ़ॉल्ट कर रहा है (जो कि एनपीएम है जिसे मैंने पहली बार एनवीएम के साथ नोड स्थापित किया था), और नवीनतम एनपीएम बाइनरी डालने के लिए इसकी जगह पर। हालांकि, मैं सोच रहा हूं कि क्या ऐसा करने के बारे में कोई बेहतर तरीका है।


1
आप एनपीएम के संस्करण को क्यों बदलना चाहते हैं, यह आपको किसी भी पैकेज को स्थापित करने वाला नहीं है जो केवल एनपीएम के पुराने संस्करण के साथ काम करता है। और नोड 0.6 के बाद, नोड नवीनतम एनपीएम के साथ आता है। इसलिए नोड वर्जन बदलने से npm वर्जन भी बदल जाएगा।
फरीद नूरी नेष्ट

1
सिवाय यह NVM के माध्यम से नहीं है। हाँ - नोड एनपीएम के साथ आता है, लेकिन इसका मतलब है कि यह इसके साथ एक द्विआधारी स्थापित करता है। मैं अपने संबंधित फ़ोल्डरों में दोनों बायनेरी देख सकता हूं, लेकिन जब मैं "nvm उपयोग v0.6.13" चलाता हूं, तो उपयोग में npm बाइनरी वही रहता है जो पुराने संस्करण के साथ नोड के पुराने संस्करण के साथ स्थापित किया गया था, नवीनतम संस्करण के साथ स्थापित होने के बजाय।
यहस्वामी

1
यहाँ npm के लिए कोड है: github.com/creationix/nvm/blob/master/nvm.sh#L135-148 , जिसकी आवश्यकता 0.6 के बाद से नहीं है, इसलिए शायद आपको उस हिस्से को हटाने की कोशिश करनी चाहिए। वह मदद करनी चाहिए। आप जीथब पर एक मुद्दा भी बना सकते हैं।
फरीद नूरी नेष्ट

मैं अभी इस समस्या पर काम कर रहा हूँ, किसी भी मदद की सराहना की - stackoverflow.com/questions/50976138/…
अलेक्जेंडर मिल्स

जवाबों:


330

संपादित करें: इस प्रश्न का उत्तर पहली बार दिया गया था, जैसा कि एक नए उत्तर में बताया गया है , अब इसके लिए एक आदेश है:

nvm में अब npm को अपडेट करने की कमांड है। यह nvm install-latest-npmया है nvm install --latest-npm

nvm install-latest-npm: npmवर्तमान नोड संस्करण पर नवीनतम कार्य करने के लिए अपग्रेड करने का प्रयास

nvm install --latest-npm: स्थापित करने के बाद, दिए गए नोड संस्करण पर नवीनतम कार्यशील एनपीएम में अपग्रेड करने का प्रयास करें

नीचे इस प्रश्न के सही उत्तर के पिछले संशोधन हैं।

यह प्रश्न पूछे जाने के तीन साल बाद, ऐसा लगता है कि उत्तर अब बहुत सरल है। बस उस संस्करण को अपडेट करें जो एनवीएम स्थापित है, जो अंदर रहता है ~/.nvm/versions/node/[your-version]/lib/node_modules/npm

मैंने केवल नोड 4.2.2 स्थापित किया है, जो npm 2.14.7 के साथ आता है, लेकिन मैं npm 3 का उपयोग करना चाहता हूं। इसलिए मैंने किया:

cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm

आसान!

और हाँ, यह किसी भी मॉड्यूल के लिए काम करना चाहिए, न कि केवल npm पर, कि आप नोड के एक विशिष्ट संस्करण के लिए "वैश्विक" होना चाहते हैं।


EDIT 1: नवीनतम संस्करण में, npm -gस्मार्ट है और सिस्टम ग्लोबल पथ के बजाय ऊपर के पथ में मॉड्यूल स्थापित करता है।


एक टिप्पणी में यह इंगित करने के लिए @philraj को धन्यवाद।


13
और उन लोगों के लिए जो नहीं जानते कि उनका nvm कहां है, मेरी तरह, a चलाते हैं which npm
लैरी

16
और यदि आप नवीनतम के अलावा npm का एक संस्करण चाहते हैं, तो npm install npm@major.minor.patchउस विशिष्ट संस्करण को प्राप्त करने के लिए दौड़ें , जैसेnpm@3.10.9
माइकल

2
एनवीएम-विंडो के लिए भी कुछ इसी तरह का काम करता है, जैसे cd ~/AppData/Roaming/nvm/v5.10.1
फरारी

2
विंडोज के लिए nvm का उपयोग करने वाले किसी के लिए, ऊपर जैसा किया जा सकता है (npm install npm पर चल रहा है), लेकिन नोड में Windows के लिए स्थानों को स्थापित करें। विंडोज 10 में, यह ~ / AppData / रोमिंग / nvm / [आपका-संस्करण] है। यानी उपयोगकर्ता \ myusername \ AppData \ Roaming \ nvm \ v9.7.1
शॉन होम्सबाई

3
इससे भी आसान: nvm install-latest-npmजैसा कि नीचे दिए गए जवाब में samlandfried - stackoverflow.com/a/47519162/5991278
philraj

43

एनवीएम एनपीएम को हैंडल नहीं करता है।

इसलिए यदि आप नोड 0.4.x स्थापित करना चाहते हैं (जो कई पैकेज अभी भी निर्भर करते हैं) और एनपीएम का उपयोग करते हैं, तो आप अभी भी npm 3-8 का उपयोग कर सकते हैं।

नोड 0.6.x स्थापित करें (जो npm 1.1.x के साथ आता है) और npm के साथ nvm स्थापित करें:

npm install nvm
. ~/nvm/nvm.sh

Nvm के साथ नोड 0.4.x स्थापित करें:

nvm install v0.4.12
nvm use v0.4.12

Npm को install.sh का उपयोग करके स्थापित करें ( -Lकिसी भी रीडायरेक्ट का पालन करने के लिए परम को नोट करें):

curl -L https://npmjs.org/install.sh | sh

यह नोड 0.4.12 का पता लगाएगा और npm 1.0.106 को आपके ~ / nvm / v0.4.12 / lib / node_modules फ़ोल्डर में स्थापित करेगा और nvm के लिए सिमलिंक बनाएगा

~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js

यदि आप एनपीएम चलाने की कोशिश करते हैं, तो यह अभी भी एक त्रुटि देगा लेकिन यदि आप nvm use v0.4.12फिर से करते हैं , तो इसे अब काम करना चाहिए।


3
धन्यवाद! ध्यान दें कि url बदल गया है:curl https://npmjs.org/install.sh | sh
tristen

7
क्या यह अब वास्तव में पुराना उत्तर है? मेरे npm को nvm द्वारा स्वचालित रूप से डाउनलोड किया जाता है जो मैं उपयोग किए जा रहे नोड संस्करण की निर्भरता के रूप में करता हूं।
डेमन स्मिथ

2
हाँ। ये पुराना है। यदि आप अभी भी नोड 0.4 और एक पुराने एनवीएम का उपयोग कर रहे हैं तो आप इस मुद्दे को देख सकते हैं।
फिजियारोन

1
Www को बाध्य करने के लिए URL को फिर से बदल दिया गया है। curl -Lरीडायरेक्ट का पालन करने के लिए उपयोग करें ।
नील एहर्ट

32

nvm में अब npm को अपडेट करने की कमांड है। यह nvm install-latest-npmया है npm install --latest-npm


3
क्या आपके पास इसके लिए दस्तावेज का लिंक है?
एलिकार्नर

1
से nvm helpसांत्वना उत्पादन: --latest-npm After installing, attempt to upgrade to the latest working npm on the given node versionमुझे नहीं में इस के लिए एक संदर्भ मिला nvmडॉक्स, हालांकि। अगर आपको यह मिल जाए तो कृपया शेयर करें।
samlandfried

धन्यवाद! इसे वास्तव में सही उत्तर के रूप में चिह्नित किया जाना चाहिए।
फिलराज

यह केवल 32 बिट्स पर उपलब्ध है
नेगिन बासिरी

30
npm install npm@x.x.x -g
npm install npm@5.4.0 -g

2
यद्यपि प्रश्न एनवीएम के बारे में है, मैं वास्तव में उसके लिए यहां आया था, धन्यवाद। Upvoting।
अत्राहिस

26

मैं विंडोज पर हूं और मुझे यह काम करने के लिए कोई सामान नहीं मिला। मैं रास्ते में होने वाली फाइलों के बारे में गलतियाँ करता रहा। हालांकि यह काम किया:

cd %APPDATA%\nvm\v8.10.0           # or whatever version you're using
mv npm npm-old
mv npm.cmd npm-old.cmd
cd node_modules\
mv npm npm-old
cd npm-old\bin
node npm-cli.js i -g npm@latest

cd %APPDATA%\nvm\v8.10.0 # or whatever version you're using
rm npm-old
rm npm-old.cmd
cd node_modules\
rm -rf npm-old

और उछाल, मैं व्यापार में वापस आ गया हूं।


3
धन्यवाद, यह मेरे लिए भी विंडोज पर काम किया। (फ़ाइल संघर्ष का एक ही मुद्दा था)
Venryx

1
मेरे लिए काम किया। नोड प्रबंधित करने के लिए Windows पर nvm का उपयोग कर रहा हूँ और नोड संस्करण पर स्विच करने के बाद nvm का उत्थान करना चाहता हूँ। एलिवेटेड परमिशन के साथ कंसोल चलाना था। मेरा पथ नोडज फ़ोल्डर "सी: \ प्रोग्राम फाइल्स \ नोडज" है जो मेरी मशीन पर किसी अन्य स्थान के लिए एक उपनाम है जो डाउनलोड (एपीपीडीएटीए) को कैश करने के लिए उपयोग करता है, मुझे लगता है कि मैंने एनवीएम स्थापित करते समय एक अलग स्थान चुना है।
Moika

2
धन्यवाद, वे शायद nvm खिड़कियों पर हर पुराने नोडज संस्करण पर npm अद्यतन करने के तरीके को ठीक करने की आवश्यकता है।
rbinsztock

1
इससे मुझे npm को अपडेट करने में मदद मिली जो कि Node 10.x के साथ आया था। धन्यवाद!
andypotato

2
NodeJS v10.15.3 साथ खिड़कियों पर काम किया, बदलना पड़ा mvकरने के लिए renऔर rmकरने के लिए delऔर rmdirमेरे लिए।
deerchao

17

लिनक्स आधारित ओएस पर एनपीएम संस्करण बदलना सीधे आगे एक कमांड प्रक्रिया नहीं है। मैंने npm के पुराने संस्करण पर वापस जाने के लिए निम्नलिखित किया है। यह npm के किसी भी संस्करण को काम करने के लिए काम करना चाहिए। पहले npm का संस्करण स्थापित करें जिसे आप उपयोग करना चाहते हैं:

sudo npm install -g npm@X.X.X

/ Usr / स्थानीय / बिन / में लिंक को हटा दें

sudo rm /usr/local/bin/npm

आपके द्वारा इंस्टॉल किए गए npm के इच्छित संस्करण का उपयोग करके लिंक को फिर से बनाएँ

sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm

1
2.14.7 से 2.15.9 तक जाने के लिए इन निर्देशों का पालन करें, और अब जब मैं npm -v टाइप करता हूं, तो मुझे 3.8.6 मिलता है। Dammit।
काइल बेकर

3
कई चीजों की कोशिश करने के बाद, मेरे लिए, बस उपयोग करने sudo npm install -g npm@x.x.xसे मुझे उस संस्करण का जवाब मिल जाता है npm -v। यह कम से कम 4.x से 2.15.9 तक काम करता है, वैसे भी।
काइल बेकर

1
मेरे मामले में sudo npm install -g npm@4.6.1केवल 4.6.1 स्थापित किया गया था, लेकिन npm 5.1.0 अभी भी उपयोग किया गया था। आपकी टिप मुझे 4.6.1 पर जाने में मदद करती है।
हंग त्रान

8

Www.npmjs.com/install.sh को देखकर मैंने पाया कि पर्यावरण-चर सेट करके एक विशिष्ट संस्करण स्थापित करने का एक तरीका है

export npm_install="2.14.14"

फिर npmjs.com पर बताए अनुसार डाउनलोड-स्क्रिप्ट चलाएँ :

curl -L https://www.npmjs.com/install.sh | sh

यदि आप npm_install वैरिएबल को सेट करने से चूक जाते हैं, तो यह उस संस्करण को स्थापित कर देगा जिसे उन्होंने नवीनतम के रूप में चिह्नित किया है


2
मुझे इस्तेमाल करना पड़ा curl -L https://www.npmjs.com/install.sh | sudo sh, आआआआआआआआआआआन्न्न्न्न्न्न्स्स्स्स्स्स्स्स्स्स्स्स्स्स्स्स्स्स्स् रवस्स्स्स्स्स् स्स्स् स्स्स्स्स्स्स्स्स्सस्सससससससससससससससससस, आआआआआआआआआआआआआआआआआआआआआआदत मे यह तरीका काम नही करता था, मुझे लेटेस्ट वर्जन मिल रहा था फिर भी मेने कहा था की पर्यावरण चर का निर्यात किया था। भगवान इस पर लानत है। मैं २.१४., से संस्करण २.१५.९ चाहता था, नीचे उत्तर ने मुझे ३. and.६ पर रखा, और अब यह उत्तर मुझे ४.०.२ पर रखता है। WTF।
काइल बेकर

6

खिड़कियों में, अपने टर्मिनल को व्यवस्थापक के रूप में चलाएं (यदि मेरे पास अनुमति के मुद्दे हैं)। फिर एक विशिष्ट नोड संस्करण (7.8.0 कहना) का उपयोग करें

nvm use 7.8.0

फिर अपने npm को वांछित विशिष्ट संस्करण तक अपडेट करें

npm install -g npm@5.0.3

2

किस बारे में npm i -g npm? क्या आपने इसे भी चलाने की कोशिश की?


यह हमेशा सबसे तेज और सबसे आसान होता है जिसका मैं सामान्य रूप से उपयोग करता हूं।
CTS_AE

2

उपरोक्त निर्देशों पर थोड़ा बदलाव, मेरे लिए काम किया। (मैकओएस सिएरा 10.12.6)

npm install -g npm@3.10.10
rm /usr/local/bin/npm
ln -s ~/.npm-packages/bin/npm /usr/local/bin/npm
npm --version


0

nvm-windowsमौजूदा नोड स्थापना के शीर्ष पर स्थापित करने के बाद मेरे पास एक ही मुद्दा था । समाधान सिर्फ निर्देशों का पालन करना था:

आपको मौजूदा npm स्थापित स्थान (जैसे "C: \ Users \ AppData \ Roaming \ npm") को भी हटा देना चाहिए ताकि nvm स्थापित स्थान का सही उपयोग हो सके।

स्थापना और उन्नयन


0

एनवीएम इंस्टॉलेशन और विंडोज पर उपयोग

नीचे विंडोज पर एनवीएम इंस्टॉलेशन के चरण दिए गए हैं:

एनवीएम नोड संस्करण प्रबंधक के लिए खड़ा है, जो आपके नोड संस्करणों को विशिष्ट उपयोग के लिए स्विच करने में मदद करेगा। यह उपयोगकर्ता को कई npm और नोड संस्करणों के साथ काम करने की भी अनुमति देता है।

एनवीएम सेटअप स्थापित करें। स्थापना रद्द नोड संस्करण की सूची की जांच करने के लिए कमांड "एनवीएम सूची" का उपयोग करें। संस्करणों को स्विच करने के लिए "एनवीएम उपयोग संस्करण संख्या [6.9.3]" टाइप करें। के लिए और अधिक जानकारी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.