Nvm kullanarak npm sürümünü nasıl değiştirebilirim?


240

Düğüm çalışmalarım için nodeJS'nin en son sürümlerini yüklemek için NVM kullanıyorum. Ayrı sürümleri kurmak ve aralarında geçiş yapmak için tamamen iyi çalışır. Ayrıca, düğüm ikilisi ile birlikte her yerel ... / bin klasörüne NPM'nin en son sürümünü yükler. Ancak, kullandığım NPM sürümünü değiştirmenin bir yolu yok gibi görünüyor (veya en azından anlayamıyorum).

Kendim hakkında düşünebildiğim tek çözüm, varsayılan olduğu ikili dosyayı silmektir (NVM ile ilk kez kurduğumda yüklenen NPM'dir) ve en son NPM ikili dosyasını koymak yerine. Ancak, bunu yapmanın daha iyi yolları olup olmadığını merak ediyorum.


1
Neden NPM sürümünü değiştirmek istiyorsunuz, sadece NPM'nin eski bir sürümü ile çalışan herhangi bir paket kurmayacaksınız. Ve düğüm 0.6'dan sonra, düğüm en son NPM ile birlikte gelir. Böylece düğüm versiyonunun değiştirilmesi npm versiyonunu da değiştirecektir.
Farid Nouri Neshat

1
tek fark NVM aracılığıyla olmaz. evet - düğüm NPM ile birlikte gelir, ancak bu onun yanında bir ikili yüklediği anlamına gelir. kendi klasörlerinde her iki ikili görebilirsiniz, ancak "nvm use v0.6.13" çalıştırdığınızda, kullanılan npm ikili en yeni sürüm ile yüklü yerine, düğümün eski sürümü ile yüklü olan kalır.
thisissami

1
İşte npm kodu: 0.6'dan beri gerekli olmayan github.com/creationix/nvm/blob/master/nvm.sh#L135-148 , bu yüzden belki de bu parçayı çıkarmaya çalışmalısınız. Bu yardımcı olmalı. Ayrıca github'da bir sorun oluşturabilirsiniz.
Farid Nouri Neshat

Şu anda bu sorun üzerinde çalışıyorum, takdir edilen herhangi bir yardım - stackoverflow.com/questions/50976138/…
Alexander Mills

Yanıtlar:


330

DÜZENLEME: Bu sorunun ilk yanıtlanmasından bu yana geçen birkaç yıl, daha yeni bir yanıtta belirtildiği gibi , şimdi bunun için bir komut var:

nvm artık npm'yi güncelleme komutuna sahip. Bu var nvm install-latest-npmya nvm install --latest-npm.

nvm install-latest-npm: npmGeçerli düğüm sürümü üzerinde çalışan en son sürüme yükseltme girişimi

nvm install --latest-npm: Yükledikten sonra, verilen düğüm sürümünde en son çalışan npm'ye yükseltmeyi deneyin

Aşağıda, bu sorunun doğru cevabının önceki revizyonları verilmiştir.

Bu sorunun ilk sorulmasından üç yıl sonra, cevap şimdi çok daha basit görünüyor. Sadece nvm'nin yüklü olan sürümünü güncelleyin ~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

Ben sadece npm 2.14.7 ile gelen düğüm 4.2.2 yükledim, ama npm 3 kullanmak istiyorum. Yani yaptım:

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

Kolay!

Ve evet, bu, yalnızca npm için değil, belirli bir düğüm sürümü için "global" olmasını istediğiniz herhangi bir modül için çalışmalıdır.


DÜZENLEME 1: En yeni sürümde npm -gakıllıdır ve modülleri sistem genel yolu yerine yukarıdaki yola yükler.


@Philraj Bir yorumda bunu belirttiğiniz için teşekkürler.


13
ve benim gibi nvm'lerinin nerede olduğunu bilmeyenler için a which npm.
Larry

16
Ve en son sürümden başka bir npm sürümü istiyorsanız, npm install npm@major.minor.patchbu belirli sürümü almak için çalıştırın , örneğinnpm@3.10.9
Michael

2
Benzer bir şey nvm-windows için de çalışır , örn cd ~/AppData/Roaming/nvm/v5.10.1.
17'de absynce

2
Windows için nvm kullanan herkes için aynı şey yukarıdaki gibi yapılabilir (npm yükleme npm'yi çalıştırır), ancak Windows için düğüm yükleme konumlarında yapılabilir. Windows 10'da bu ~ / AppData / Roaming / nvm / [sürümünüz]. ie Kullanıcılar \ myusername \ AppData \ Roaming \ nvm \ v9.7.1
Sean Holmesby

3
Daha da kolay: nvm install-latest-npmaşağıda samlandfried tarafından yanıtlandığı gibi - stackoverflow.com/a/47519162/5991278
philraj

43

nvm, npm ile başa çıkmaz.

Bu nedenle, 0.4.x düğümünü (hala birçok paketin bağımlı olduğu) yüklemek ve NPM kullanmak istiyorsanız, yine de npm 1.0.x'i kullanabilirsiniz.

0.6.x düğümünü (npm 1.1.x ile birlikte gelir) kurun ve nvm'yi npm ile yükleyin:

npm install nvm
. ~/nvm/nvm.sh

Nvm ile 0.4.x düğümünü kurun:

nvm install v0.4.12
nvm use v0.4.12

İnstall.sh komutunu kullanarak npm'yi yükleyin ( -Lyönlendirmeleri takip etmek için parametreye dikkat edin ):

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

Bu, 0.4.12 düğümünü algılar ve ~ / nvm / v0.4.12 / lib / node_modules klasörünüze npm 1.0.106 yükler ve nvm için symlink oluşturur

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

Npm'yi çalıştırmayı denerseniz, yine de bir hata verecektir, ancak nvm use v0.4.12tekrar yaparsanız , şimdi çalışmalıdır.


3
Teşekkürler! curl https://npmjs.org/install.sh | sh
URL'nin

7
Bu gerçekten eski bir cevap mı? Benim npm kullandığım düğüm sürümünün bağımlılığı olarak nvm tarafından otomatik olarak indirilir.
Damon Smith

2
Evet. Bu eski. Hala 0.4 düğümü ve eski bir nvm kullanıyorsanız bu sorunu görebilirsiniz.
fijiaaron

1
URL, www'yi zorlamak için tekrar değiştirildi. curl -LYönlendirmeyi takip etmek için kullanın .
Neal Ehardt

32

nvm artık npm'yi güncelleme komutuna sahip. Bu var nvm install-latest-npmya npm install --latest-npm.


3
Bunun belgelerine bir bağlantınız var mı?
allicarn

1
Gönderen nvm helpkonsol çıkışı: --latest-npm After installing, attempt to upgrade to the latest working npm on the given node versionBen bu bir başvuru bulamadık nvmolsa da, docs. Bulursanız lütfen paylaşın.
samlandfried

Teşekkür ederim! Bu gerçekten doğru cevap olarak işaretlenmelidir.
philraj

sadece 32 bitte mevcut
Negin Basiri

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

2
Soru nvm ile ilgili olsa da, aslında buraya bunun için geldim, teşekkürler. Upvoting.
Atrahasis

27

Windows'tayım ve bunların hiçbirini çalıştıramadım. Dosyaların engellemesiyle ilgili hatalar almaya devam ettim. Bu yine de çalıştı:

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

Ve patlama, iş hayatına geri döndüm.


3
Teşekkürler, bu benim için de çalıştı, Windows. (dosya çakışmalarıyla aynı sorunu vardı)
Venryx

1
Benim için çalıştı thx. Düğümü yönetmek için Windows'ta nvm kullanıyorum ve düğüm sürümüne geçtikten sonra nvm'yi yükseltmek istedim. Yükseltilmiş izinlerle konsol çalıştırmak zorunda kaldı. Benim yol nodejs klasörü benim makine nvm indirmeleri önbellek (APPDATA değil) için kullandığı başka bir konum için bir takma ad olan "C: \ Program Files \ nodejs", sanırım nvm yüklerken farklı bir konum seçti.
Moika

2
Teşekkür ederim, muhtemelen nvm pencerelerindeki her eski nodejs sürümünde npm güncellemesini düzeltmeleri gerekiyor.
rbinsztock

1
Bu, Düğüm 10.x ile gelen npm'yi güncellememe yardımcı oldu. Teşekkür ederim!
andypotato

2
Nodejs v10.15.3 ile pencerelerde çalıştı, değiştirmek zorunda mviçin renve rmiçin delve rmdirbenim için.
deerchao

17

Linux tabanlı işletim sistemlerinde npm sürümlerini değiştirmek henüz basit bir komut işlemi değildir. Ben npm eski sürümüne geçmek için aşağıdaki yaptım. Bu, npm'nin herhangi bir sürümünü çalıştırmak için çalışmalıdır. Öncelikle kullanmak istediğiniz npm sürümünü yükleyin:

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

/ Usr / local / bin / içindeki sym bağlantısını kaldırın

sudo rm /usr/local/bin/npm

Yüklediğiniz npm sürümünü kullanarak sym bağlantısını yeniden oluşturun

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

1
2.14.7'den 2.15.9'a gitmeye çalışan bu talimatları izledi ve şimdi npm -v yazdığımda 3.8.6 alıyorum. Kahretsin.
Kyle Baker

3
Birkaç şeyi denedikten sonra, benim için, sadece kullanmak sudo npm install -g npm@x.x.xbana bu sürümü yanıtlıyor npm -v. Bu en azından 4.x'ten 2.15.9'a kadar çalıştı.
Kyle Baker

1
Benim durumumda sudo npm install -g npm@4.6.1sadece 4.6.1 kuruldu ancak npm 5.1.0 hala kullanıldı. Bahşişiniz 4.6.1'e geçmeme yardımcı oluyor.
Hung Tran

8

Www.npmjs.com/install.sh adresine bakarak, ortam değişkenini ayarlayarak belirli bir sürümü kurmanın bir yolu olduğunu buldum

export npm_install="2.14.14"

Ardından, indirme komut dosyasını npmjs.com adresinde açıklandığı şekilde çalıştırın :

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

Npm_install değişkenini ayarlamayı atlarsanız , en son olarak işaretledikleri sürümü yükler


2
curl -L https://www.npmjs.com/install.sh | sudo shKullanmak zorunda kaldım , aaaaand ve bu yöntem işe yaramadı, söz konusu ortam değişkenini ihraç etsem bile en son sürümü elde ettim. Allah kahretsin. 2.14.9'dan 2.15.9 sürümünü istedim, aşağıdaki cevap beni 3.8.6'ya getirdi ve şimdi bu cevap beni 4.0.2'ye koyuyor. O NE LAN.
Kyle Baker

6

Windows'da terminalinizi yönetici olarak çalıştırın (sahip olduğum şekilde izin sorunları olması durumunda). Ardından, belirli bir düğüm sürümünü (örneğin 7.8.0) kullanın.

nvm use 7.8.0

sonra npm'nizi istediğiniz belirli sürüme güncelleyin

npm install -g npm@5.0.3


2

Yukarıdaki talimatlarda hafif değişiklik var, benim için çalıştı. (MacOS Sierra 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-windowsMevcut Node kurulumunun üzerine kurduktan sonra da aynı sorunu yaşadım . Çözüm sadece talimatları takip etmekti:

Ayrıca, nvm kurulum konumunun doğru bir şekilde kullanılması için mevcut npm kurulum konumunu da silmelisiniz (örn. "C: \ Users \ AppData \ Roaming \ npm").

Kurulum ve Yükseltmeler


0

Windows'ta NVM Kurulumu ve kullanımı

Windows'ta NVM Kurulumu için adımlar şunlardır:

NVM, düğüm sürümlerinizi özel kullanım için değiştirmenize yardımcı olacak düğüm sürüm yöneticisinin kısaltmasıdır. Ayrıca kullanıcının birden fazla npm ve düğüm sürümüyle çalışmasına izin verir.

NVM kurulumunu kurun. Kurulu düğüm sürümünün listesini kontrol etmek için "nvm list" komutunu kullanın. Sürümleri değiştirmek için "nvm use version number [6.9.3]" yazın. Daha fazla bilgi için

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.