Bagaimana saya bisa mengubah versi npm menggunakan nvm?

240

Saya telah menggunakan NVM untuk menginstal versi terbaru dari nodeJS untuk pekerjaan simpul saya. Ini berfungsi dengan sangat baik untuk menginstal versi terpisah dan beralih di antara mereka. Ini juga menginstal versi terbaru NPM dalam setiap folder ... / bin lokal bersama dengan biner simpul. Namun, sepertinya tidak ada cara untuk mengganti versi NPM yang saya gunakan (atau setidaknya saya tidak bisa mengetahuinya).

Satu-satunya solusi yang dapat saya pikirkan adalah menghapus biner yang menjadi default-nya (yang merupakan NPM yang diinstal ketika saya pertama kali menginstal node dengan NVM), dan sebagai gantinya menempatkan biner NPM terbaru. Namun, saya bertanya-tanya apakah ada cara yang lebih baik untuk melakukan ini.

iniissami
sumber
1
Mengapa Anda ingin mengubah versi NPM, tidak seperti Anda akan menginstal paket apa pun yang hanya berfungsi dengan NPM versi lama. Dan setelah node 0.6, node hadir dengan NPM terbaru. Jadi mengubah versi simpul juga akan mengubah versi npm.
Farid Nouri Neshat
1
kecuali itu tidak melalui NVM. ya - node dilengkapi dengan NPM, tetapi itu hanya berarti bahwa ia menginstal biner di sampingnya. saya dapat melihat kedua binari di folder masing-masing, tetapi ketika saya menjalankan "nvm use v0.6.13", npm binary yang digunakan tetaplah salah satu yang diinstal dengan versi node yang lebih lama, alih-alih yang diinstal dengan versi terbaru.
thisissami
1
Berikut kode untuk npm: github.com/creationix/nvm/blob/master/nvm.sh#L135-148 , yang tidak diperlukan sejak, 0,6, jadi mungkin Anda harus mencoba untuk menghapus bagian itu. Itu akan membantu. Anda juga dapat membuat masalah di github.
Farid Nouri Neshat
Saya sedang mengerjakan masalah ini sekarang, bantuan apa pun dihargai - stackoverflow.com/questions/50976138/…
Alexander Mills

Jawaban:

330

EDIT: beberapa tahun sejak pertanyaan ini pertama kali dijawab, seperti disebutkan dalam jawaban yang lebih baru , sekarang ada perintah untuk ini:

nvm sekarang memiliki perintah untuk memperbarui npm. Itu nvm install-latest-npmatau nvm install --latest-npm.

nvm install-latest-npm: Berusaha memutakhirkan ke versi terbaru yang berfungsi npmpada versi node saat ini

nvm install --latest-npm: Setelah menginstal, cobalah untuk meningkatkan ke npm yang berfungsi pada versi node yang diberikan

Di bawah ini adalah revisi sebelumnya dari jawaban yang benar untuk pertanyaan ini.

Lebih dari tiga tahun setelah pertanyaan ini pertama kali ditanyakan, sepertinya jawabannya jauh lebih sederhana sekarang. Cukup perbarui versi yang diinstal nvm, yang tinggal di ~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

Saya baru saja menginstal node 4.2.2, yang datang dengan npm 2.14.7, tapi saya ingin menggunakan npm 3. Jadi saya lakukan:

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

Mudah!

Dan ya, ini harus bekerja untuk modul apa pun, bukan hanya npm, yang Anda ingin menjadi "global" untuk versi node tertentu.


EDIT 1: Dalam versi terbaru, npm -gcerdas dan memasang modul ke jalur di atas alih-alih jalur global sistem.


Terima kasih @philraj karena menunjukkan ini dalam komentar.

lawrence
sumber
13
dan bagi mereka yang tidak tahu di mana nvm mereka, seperti saya, jalankan a which npm.
Larry
16
Dan jika Anda menginginkan versi npm selain yang terbaru, jalankan npm install [email protected]untuk mendapatkan versi spesifik itu, misalnya[email protected]
Michael
2
Sesuatu yang serupa juga berfungsi untuk nvm-windows , misalnya cd ~/AppData/Roaming/nvm/v5.10.1.
absynce
2
Bagi siapa pun yang menggunakan nvm untuk Windows, hal yang sama dapat dilakukan seperti di atas (menjalankan npm install npm), tetapi di node instal lokasi untuk Windows. Di Windows 10, ini ~ / AppData / Roaming / nvm / [versi Anda]. yaitu Users \ myusername \ AppData \ Roaming \ nvm \ v9.7.1
Sean Holmesby
3
Bahkan lebih mudah: nvm install-latest-npmseperti yang dijawab di bawah ini oleh samlandfried - stackoverflow.com/a/47519162/5991278
philraj
43

nvm tidak menangani npm.

Jadi jika Anda ingin menginstal node 0.4.x (yang masih bergantung pada banyak paket) dan menggunakan NPM, Anda masih dapat menggunakan npm 1.0.x.

Instal node 0.6.x (yang dilengkapi dengan npm 1.1.x) dan instal nvm dengan npm:

npm install nvm
. ~/nvm/nvm.sh

Instal node 0.4.x dengan nvm:

nvm install v0.4.12
nvm use v0.4.12

Instal npm menggunakan install.sh (perhatikan -Lparam untuk mengikuti arahan ulang):

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

Ini akan mendeteksi node 0.4.12 dan menginstal npm 1.0.106 di folder ~ / nvm / v0.4.12 / lib / node_modules Anda dan membuat symlink untuk nvm

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

Jika Anda mencoba menjalankan npm, ia masih akan memberikan kesalahan tetapi jika Anda melakukannya nvm use v0.4.12lagi, sekarang akan berfungsi.

fijiaaron
sumber
3
Terima kasih! Catatan bahwa url telah berubah menjadi: curl https://npmjs.org/install.sh | sh
tristen
7
Apakah ini jawaban yang sangat lama sekarang? Npm saya diunduh oleh nvm secara otomatis sebagai ketergantungan dari versi node yang saya gunakan.
Damon Smith
2
Ya. Itu sudah tua. Jika Anda masih menggunakan simpul 0.4 dan nvm lama Anda mungkin melihat masalah ini.
fijiaaron
1
URL telah diubah lagi untuk memaksa www. Gunakan curl -Luntuk mengikuti arahan ulang.
Neal Ehardt
32

nvm sekarang memiliki perintah untuk memperbarui npm. Itu nvm install-latest-npmatau npm install --latest-npm.

samfried
sumber
3
Apakah Anda memiliki tautan ke dokumentasi untuk ini?
allicarn
1
Dari nvm helpkeluaran konsol: --latest-npm After installing, attempt to upgrade to the latest working npm on the given node versionsaya tidak menemukan referensi untuk ini di nvmdokumen, meskipun. Silakan bagikan jika Anda menemukannya.
samlandfried
Terima kasih! Ini benar-benar harus ditandai sebagai jawaban yang benar.
philraj
ini hanya tersedia pada 32 bit
Negin Basiri
30
npm install npm@x.x.x -g
npm install npm@5.4.0 -g
Ocko
sumber
2
Meskipun pertanyaannya adalah tentang nvm, saya sebenarnya datang ke sini untuk itu, terima kasih. Upvoting.
Atrahasis
27

Saya menggunakan Windows dan saya tidak bisa menyelesaikan semua ini. Saya terus mendapatkan kesalahan tentang file yang menghalangi. Ini berhasil meskipun:

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

Dan boom, saya kembali dalam bisnis.

Ryan Shillington
sumber
3
Terima kasih, ini berhasil juga untuk saya, di Windows. (memiliki masalah yang sama konflik file)
Venryx
1
Bekerja untuk saya thx. Saya menggunakan nvm di Windows untuk mengelola node dan ingin mengangkat nvm setelah beralih ke versi node. Harus menjalankan konsol dengan izin tinggi. Folder path nodejs saya adalah "C: \ Program Files \ nodejs" yang merupakan alias untuk lokasi lain di komputer saya yang digunakan nvm untuk cache unduhan (bukan APPDATA), kira saya memilih lokasi yang berbeda ketika menginstal nvm.
Moika Turns
2
Terima kasih, mereka mungkin perlu memperbaiki cara pembaruan npm pada setiap versi nodejs lama di nvm windows.
rbinsztock
1
Itu membantu saya untuk memperbarui npm yang datang dengan Node 10.x. Terima kasih!
andypotato
2
Bekerja pada windows dengan nodejs v10.15.3, harus berubah mvke rendan rmke deldan rmdiruntuk saya.
deerchao
17

Mengubah versi npm pada OS berbasis linux belum merupakan proses perintah langsung ke depan. Saya telah selesai mengikuti untuk kembali ke versi npm yang lebih lama. Ini harus bekerja untuk mendapatkan versi npm yang berfungsi. Pertama instal versi npm yang ingin Anda gunakan:

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

Hapus tautan sym di / usr / local / bin /

sudo rm /usr/local/bin/npm

Buat kembali tautan sym menggunakan versi npm yang Anda instal

sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm
Arun Reddy
sumber
1
mengikuti instruksi ini mencoba untuk beralih dari 2.14.7 ke 2.15.9, dan sekarang ketika saya mengetik npm -v, saya mendapatkan 3.8.6. Sialan.
Kyle Baker
3
Setelah mencoba beberapa hal, bagi saya, hanya menggunakan sudo npm install -g [email protected]memberi saya versi yang merespons npm -v. Setidaknya ini bekerja dari 4.x ke 2.15.9, lagian.
Kyle Baker
1
Dalam kasus saya sudo npm install -g [email protected]hanya menginstal 4.6.1 tetapi npm 5.1.0 masih digunakan. Kiat Anda membantu saya beralih ke 4.6.1.
Hung Tran
8

Dengan melihat www.npmjs.com/install.sh, saya menemukan ada cara untuk menginstal versi tertentu dengan mengatur variabel lingkungan

export npm_install="2.14.14"

Kemudian jalankan skrip unduhan seperti yang dijelaskan di npmjs.com :

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

Jika Anda menghilangkan pengaturan variabel npm_install , maka itu akan menginstal versi yang mereka tandai sebagai yang terbaru

Jim
sumber
2
Saya harus menggunakan curl -L https://www.npmjs.com/install.sh | sudo sh, aaaa dan metode ini tidak bekerja, mendapatkan saya versi terbaru meskipun saya telah mengekspor variabel lingkungan. Tuhan sial. Saya ingin versi 2.15.9 dari 2.14.7, jawaban di bawah menempatkan saya di 3.8.6, dan sekarang jawaban ini menempatkan saya di 4.0.2. WTF.
Kyle Baker
6

Di windows, jalankan terminal Anda sebagai admin (kalau-kalau ada masalah izin seperti saya). Kemudian gunakan versi simpul tertentu (katakanlah 7.8.0) oleh

nvm use 7.8.0

kemudian perbarui npm Anda ke versi spesifik yang diinginkan oleh

npm install -g npm@5.0.3
adnan2nd
sumber
2

Bagaimana dengan npm i -g npm? Apakah Anda mencoba menjalankan ini juga?

Dimitri Reifschneider
sumber
Ini selalu yang tercepat dan termudah yang biasa saya gunakan.
CTS_AE
2

Sedikit variasi pada instruksi di atas, berhasil untuk saya. (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
Nick Grealy
sumber
2
  1. temukan versi node dan npm yang ingin Anda gunakan dari sini https://nodejs.org/en/download/releases/
  2. nvm use 8.11.4
  3. Anda sudah mendapatkan npm 5.6 dengan node 8.11.4 (solid dan bagus)

Ikuti saja nvm use node_version

Alvin Smith
sumber
0

Saya memiliki masalah yang sama setelah menginstal nvm-windowsdi atas instalasi Node yang ada. Solusi hanya mengikuti petunjuk:

Anda juga harus menghapus lokasi pemasangan npm yang ada (mis. "C: \ Users \ AppData \ Roaming \ npm") sehingga lokasi pemasangan nvm akan digunakan dengan benar.

Instalasi & Peningkatan

MyTitle
sumber
0

Instalasi & penggunaan NVM di Windows

Berikut adalah langkah-langkah untuk Instalasi NVM pada Windows:

NVM singkatan dari manajer versi simpul, yang akan membantu untuk mengganti versi simpul Anda untuk penggunaan khusus. Ini juga memungkinkan pengguna untuk bekerja dengan beberapa versi npm dan node.

Instal pengaturan nvm. Gunakan perintah "daftar nvm" untuk memeriksa daftar versi simpul yang diinstal. Ketik "nvm gunakan nomor versi [6.9.3]" untuk beralih versi. Untuk info lebih lanjut

Shrinivas Kalangutkar
sumber