Come posso cambiare la versione di npm usando nvm?


240

Sto usando NVM per installare le ultime versioni di nodeJS per il mio lavoro sul nodo. Funziona perfettamente per l'installazione di versioni separate e il passaggio da una all'altra. Installa anche l'ultima versione di NPM all'interno di ogni cartella locale ... / bin insieme al nodo binario. Tuttavia, non sembra esserci alcun modo per cambiare la versione di NPM che sto usando (o almeno non riesco a capirlo).

L'unica soluzione che mi viene in mente è eliminare il file binario predefinito (ovvero l'NPM che è stato installato quando ho installato per la prima volta il nodo con NVM) e al suo posto inserire l'ultimo binario NPM. Tuttavia, mi chiedo se ci sono modi migliori per farlo.


1
Perché vuoi cambiare la versione di NPM, non è come se dovessi installare un pacchetto che funziona solo con una vecchia versione di NPM. E dopo il nodo 0.6, il nodo arriva con l'ultimo NPM. Quindi cambiando la versione del nodo cambierà anche la versione di npm.
Farid Nouri Neshat il

1
tranne che non tramite NVM. sì - il nodo viene fornito con NPM, ma ciò significa che installa un binario al suo fianco. posso vedere entrambi i binari nelle loro rispettive cartelle, ma quando eseguo "nvm use v0.6.13", il binario npm in uso rimane quello installato con la versione precedente del nodo, anziché quello installato con la versione più recente.
thisissami,

1
Ecco il codice per npm: github.com/creationix/nvm/blob/master/nvm.sh#L135-148 , che non è necessario da 0.6, quindi forse dovresti provare a rimuovere quella parte. Questo dovrebbe aiutare. Puoi anche creare un problema su github.
Farid Nouri Neshat,

Sto lavorando a questo problema in questo momento, qualsiasi aiuto apprezzato - stackoverflow.com/questions/50976138/…
Alexander Mills,

Risposte:


330

EDIT: diversi anni dalla prima risposta a questa domanda, come indicato in una risposta più recente , ora esiste un comando per questo:

nvm ora ha un comando per aggiornare npm. È nvm install-latest-npmo nvm install --latest-npm.

nvm install-latest-npm: Tentativo di eseguire l'aggiornamento alla versione più recente funzionante npmsulla versione corrente del nodo

nvm install --latest-npm: Dopo l'installazione, provare ad aggiornare all'ultimo npm funzionante sulla data versione del nodo

Di seguito sono riportate le revisioni precedenti della risposta corretta a questa domanda.

Dopo tre anni dalla prima domanda, sembra che la risposta sia molto più semplice ora. Basta aggiornare la versione installata da nvm, che risiede ~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

Ho appena installato il nodo 4.2.2, che viene fornito con npm 2.14.7, ma voglio usare npm 3. Così ho fatto:

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

Facile!

E sì, questo dovrebbe funzionare per qualsiasi modulo, non solo per npm, che si desidera essere "globale" per una versione specifica del nodo.


EDIT 1: Nella versione più recente, npm -gè intelligente e installa i moduli nel percorso sopra invece del percorso globale del sistema.


Grazie @philraj per averlo sottolineato in un commento.


13
e per quelli che non sanno dove sia il loro nvm, come me, eseguono a which npm.
Larry,

16
E se vuoi una versione di npm diversa dalla più recente, corri npm install npm@major.minor.patchper ottenere quella versione specifica, ad es.npm@3.10.9
Michael

2
Qualcosa di simile funziona anche per nvm-windows , ad es cd ~/AppData/Roaming/nvm/v5.10.1.
absynce

2
Per chiunque usi nvm per Windows, lo stesso può essere fatto come sopra (eseguendo npm install npm), ma nei percorsi di installazione del nodo per Windows. In Windows 10, questo è ~ / AppData / Roaming / nvm / [la tua versione]. cioè Utenti \ nome utente \ AppData \ Roaming \ nvm \ v9.7.1
Sean Holmesby

3
Ancora più facile: nvm install-latest-npmcome risposta qui di seguito dal samlandfried - stackoverflow.com/a/47519162/5991278
philraj

43

nvm non gestisce npm.

Quindi, se si desidera installare il nodo 0.4.x (da cui dipendono ancora molti pacchetti) e utilizzare NPM, è comunque possibile utilizzare npm 1.0.x.

Installa il nodo 0.6.x (fornito con npm 1.1.x) e installa nvm con npm:

npm install nvm
. ~/nvm/nvm.sh

Installa il nodo 0.4.x con nvm:

nvm install v0.4.12
nvm use v0.4.12

Installa npm usando install.sh (nota il -Lparametro per seguire i reindirizzamenti):

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

Questo rileverà il nodo 0.4.12 e installerà npm 1.0.106 nella cartella ~ / nvm / v0.4.12 / lib / node_modules e creerà un collegamento simbolico per nvm

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

Se si tenta di eseguire npm, verrà comunque visualizzato un errore, ma se lo si esegue di nvm use v0.4.12nuovo, ora dovrebbe funzionare.


3
Grazie! Una nota che l'URL è cambiato in: curl https://npmjs.org/install.sh | sh
tristen

7
È una risposta davvero vecchia ora? Il mio npm viene scaricato automaticamente da nvm come dipendenza dalla versione del nodo che sto usando.
Damon Smith,

2
Si. È vecchio. Se stai ancora utilizzando il nodo 0.4 e un vecchio nvm, potresti riscontrare questo problema.
fijiaaron,

1
L'URL è stato nuovamente modificato per forzare www. Utilizzare curl -Lper seguire il reindirizzamento.
Neal Ehardt,

32

nvm ora ha un comando per aggiornare npm. È nvm install-latest-npmo npm install --latest-npm.


3
Hai un link alla documentazione per questo?
Allicarn,

1
Dall'output della nvm helpconsole: --latest-npm After installing, attempt to upgrade to the latest working npm on the given node versionnon ho trovato riferimenti a questo nei nvmdocumenti, però. Per favore condividi se lo trovi.
Samlandfried il

Grazie! Questo dovrebbe davvero essere contrassegnato come la risposta corretta.
philraj,

è disponibile solo su 32 bit
Negin Basiri il

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

2
Sebbene la domanda riguardi NVM, in realtà sono venuto qui per questo, grazie. Upvoting.
Atrahasis

27

Sono su Windows e non riesco a far funzionare queste cose. Continuavo a ricevere errori sui file che si frappongono. Questo ha funzionato però:

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

E boom, sono tornato in attività.


3
Grazie, ha funzionato anche per me, su Windows. (aveva lo stesso problema di conflitti tra file)
Venryx,

1
Ha funzionato per me grazie. Sto usando NVM su Windows per gestire il nodo e volevo elevare NVM dopo il passaggio alla versione del nodo. Ho dovuto eseguire la console con autorizzazioni elevate. Il mio percorso nella cartella nodejs è "C: \ Programmi \ nodejs" che è un alias per un'altra posizione sulla mia macchina che nvm usa per scaricare nella cache (non APPDATA), suppongo di aver scelto una posizione diversa durante l'installazione di nvm.
Moika compie

2
Grazie, probabilmente hanno bisogno di risolvere il modo in cui npm si aggiorna su ogni vecchia versione di nodejs su nvm windows.
rbinsztock,

1
Ciò mi ha aiutato ad aggiornare npm fornito con il nodo 10.x. Grazie!
andypotato

2
Ha funzionato su Windows con nodejs v10.15.3, ha dovuto cambiare mvda rene rmverso dele rmdirper me.
Deerchao,

17

La modifica delle versioni di npm su sistemi operativi basati su Linux non è ancora un semplice processo di comando. Ho fatto quanto segue per tornare alla versione precedente di npm. Questo dovrebbe funzionare per far funzionare qualsiasi versione di npm. Innanzitutto installa la versione di npm che desideri utilizzare:

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

Rimuovi il link sym in / usr / local / bin /

sudo rm /usr/local/bin/npm

Ricrea il link sym usando la versione desiderata di npm che hai installato

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

1
ho seguito queste istruzioni provando ad andare da 2.14.7 a 2.15.9, e ora quando scrivo npm -v, ottengo 3.8.6. Dannazione.
Kyle Baker,

3
Dopo aver provato diverse cose, per me, il solo utilizzo sudo npm install -g npm@x.x.xmi fa rispondere da quella versione npm -v. Questo almeno ha funzionato andando da 4.x a 2.15.9, comunque.
Kyle Baker,

1
Nel mio caso è sudo npm install -g npm@4.6.1stato installato solo 4.6.1 ma npm 5.1.0 era ancora utilizzato. Il tuo consiglio mi aiuta a passare alla 4.6.1.
Hung Tran,

8

Guardando www.npmjs.com/install.sh ho scoperto che esiste un modo per installare una versione specifica impostando una variabile d'ambiente

export npm_install="2.14.14"

Quindi eseguire lo script di download come descritto su npmjs.com :

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

Se si omette l'impostazione della variabile npm_install , verrà installata la versione contrassegnata come più recente


2
Ho dovuto usare curl -L https://www.npmjs.com/install.sh | sudo sh, aaaa e questo metodo non ha funzionato, ottenendomi l'ultima versione anche se avevo esportato detta variabile d'ambiente. Dannazione. Volevo la versione 2.15.9 dalla 2.14.7, la risposta sotto mi ha messo a 3.8.6, e ora questa risposta mi mette a 4.0.2. WTF.
Kyle Baker,

6

In Windows, esegui il tuo terminale come amministratore (nel caso in cui ci siano problemi di autorizzazione come ho avuto). Quindi utilizzare una versione specifica del nodo (diciamo 7.8.0) di

nvm use 7.8.0

quindi aggiorna il tuo npm alla versione specifica desiderata di

npm install -g npm@5.0.3


2

Leggera variazione sulle istruzioni sopra, ha funzionato per me. (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

Ho avuto lo stesso problema dopo l'installazione nvm-windowssopra l' installazione del nodo esistente. La soluzione era solo seguire le istruzioni:

È inoltre necessario eliminare il percorso di installazione npm esistente (ad esempio "C: \ Users \ AppData \ Roaming \ npm") in modo che il percorso di installazione nvm venga utilizzato correttamente.

Installazione e aggiornamenti


0

Installazione e utilizzo NVM su Windows

Di seguito sono riportati i passaggi per l'installazione di NVM su Windows:

NVM sta per gestore versione nodo, che aiuterà a cambiare la versione del nodo per un uso specifico. Inoltre, consente all'utente di lavorare con più npm e versioni di nodo.

Installa nvm setup. Utilizzare il comando "elenco nvm" per controllare l'elenco della versione del nodo installata. Digitare "nvm usa il numero di versione [6.9.3]" per cambiare versione. Per maggiori informazioni

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.