¿Cómo puedo cambiar la versión de npm usando nvm?


240

He estado usando NVM para instalar las últimas versiones de nodeJS para mi trabajo de nodo. Funciona totalmente bien para instalar versiones separadas y cambiar entre ellas. También instala la última versión de NPM dentro de cada carpeta local ... / bin junto con el nodo binario. Sin embargo, no parece haber ninguna forma de cambiar la versión de NPM que estoy usando (o al menos no puedo entenderlo).

La única solución que se me ocurre es eliminar el binario en el que está predeterminado (que es el NPM que se instaló cuando instalé el nodo por primera vez con NVM), y en su lugar poner el último binario de NPM. Sin embargo, me pregunto si hay mejores maneras de hacerlo.


1
¿Por qué quieres cambiar la versión de NPM? No es como si instalaras un paquete que solo funciona con una versión anterior de NPM. Y después del nodo 0.6, el nodo viene con el último NPM. Por lo tanto, cambiar la versión del nodo también cambiará la versión npm.
Farid Nouri Neshat

1
excepto que no lo hace a través de NVM. sí, el nodo viene con NPM, pero eso solo significa que instala un binario junto a él. puedo ver ambos binarios en sus respectivas carpetas, pero cuando ejecuto "nvm use v0.6.13", el binario npm en uso sigue siendo el que se instaló con la versión anterior del nodo, en lugar del que se instaló con la versión más reciente.
thisissami

1
Aquí está el código para npm: github.com/creationix/nvm/blob/master/nvm.sh#L135-148 , que no es necesario desde, 0.6, por lo que tal vez debería intentar eliminar esa parte. Eso debería ayudar. También puede crear un problema en github.
Farid Nouri Neshat

Estoy trabajando en este problema en este momento, cualquier ayuda apreció - stackoverflow.com/questions/50976138/...
Alexander Mills

Respuestas:


330

EDITAR: varios años desde que esta pregunta fue respondida por primera vez, como se señaló en una respuesta más reciente , ahora hay un comando para esto:

nvm ahora tiene un comando para actualizar npm. Es nvm install-latest-npmo nvm install --latest-npm.

nvm install-latest-npm: Intente actualizar a la última npmversión que funciona en la versión actual del nodo

nvm install --latest-npm: Después de la instalación, intente actualizar a la última versión npm en funcionamiento en la versión de nodo dada

A continuación se presentan revisiones anteriores de la respuesta correcta a esta pregunta.

Más de tres años después de esta pregunta, parece que la respuesta es mucho más simple ahora. Simplemente actualice la versión que instaló nvm, que vive en ~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

Acabo de instalar el nodo 4.2.2, que viene con npm 2.14.7, pero quiero usar npm 3. Así que hice:

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

¡Fácil!

Y sí, esto debería funcionar para cualquier módulo, no solo npm, que desea ser "global" para una versión específica de nodo.


EDITAR 1: en la versión más reciente, npm -ges inteligente e instala módulos en la ruta anterior en lugar de la ruta global del sistema.


Gracias @philraj por señalar esto en un comentario.


13
y para aquellos que no saben dónde está su nvm, como yo, ejecute a which npm.
Larry

16
Y si desea una versión de npm que no sea la última, ejecute npm install npm@major.minor.patchpara obtener esa versión específica, por ejemplonpm@3.10.9
Michael

2
Algo similar funciona también para nvm-windows , por ejemplo cd ~/AppData/Roaming/nvm/v5.10.1.
absynce

2
Para cualquiera que use nvm para Windows, se puede hacer lo mismo que anteriormente (ejecutando npm install npm), pero en las ubicaciones de instalación de nodos para Windows. En Windows 10, esto es ~ / AppData / Roaming / nvm / [your-version]. es decir, Usuarios \ myusername \ AppData \ Roaming \ nvm \ v9.7.1
Sean Holmesby el

3
Aún más fácil: nvm install-latest-npmcomo respondió a continuación por samlandfried - stackoverflow.com/a/47519162/5991278
philraj

43

nvm no maneja npm.

Entonces, si desea instalar el nodo 0.4.x (del cual todavía dependen muchos paquetes) y usar NPM, aún puede usar npm 1.0.x.

Instale el nodo 0.6.x (que viene con npm 1.1.x) e instale nvm con npm:

npm install nvm
. ~/nvm/nvm.sh

Instale el nodo 0.4.x con nvm:

nvm install v0.4.12
nvm use v0.4.12

Instale npm usando install.sh (tenga en cuenta el -Lparámetro para seguir cualquier redirección):

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

Esto detectará el nodo 0.4.12 e instalará npm 1.0.106 en su carpeta ~ / nvm / v0.4.12 / lib / node_modules y creará un enlace simbólico para nvm

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

Si intenta ejecutar npm, todavía dará un error, pero si lo nvm use v0.4.12vuelve a hacer , ahora debería funcionar.


3
¡Gracias! Una nota de que la url ha cambiado a: curl https://npmjs.org/install.sh | sh
Tristen

77
¿Es esta una respuesta realmente vieja ahora? Mi npm es descargado por nvm automáticamente como una dependencia de la versión del nodo que estoy usando.
Damon Smith

2
Si. Es viejo. Si todavía usa el nodo 0.4 y un viejo nvm, es posible que vea este problema.
fijiaaron

1
La URL se ha cambiado nuevamente para forzar www. Use curl -Lpara seguir la redirección.
Neal Ehardt

32

nvm ahora tiene un comando para actualizar npm. Es nvm install-latest-npmo npm install --latest-npm.


3
¿Tiene un enlace a la documentación para esto?
Allicarn

1
De la nvm helpsalida de la consola: --latest-npm After installing, attempt to upgrade to the latest working npm on the given node versionsin embargo, no encontré una referencia a esto en los nvmdocumentos. Por favor, comparta si lo encuentra.
samlandfried

¡Gracias! Esto realmente debería marcarse como la respuesta correcta.
philraj

solo está disponible en 32 bits
Negin Basiri

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

2
Aunque la pregunta es sobre nvm, en realidad vine aquí por eso, gracias. Votación a favor.
Atrahasis

27

Estoy en Windows y no pude conseguir que nada de esto funcionara. Seguía recibiendo errores sobre los archivos que estaban en el camino. Sin embargo, esto funcionó:

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

Y boom, estoy de vuelta en el negocio.


3
Gracias, esto también funcionó para mí, en Windows. (tenía el mismo problema de conflictos de archivos)
Venryx

1
Trabajó para mí gracias. Estoy usando nvm en Windows para administrar el nodo y quería elevar nvm después de cambiar a la versión del nodo. Tuve que ejecutar la consola con permisos elevados. Mi carpeta de la ruta nodejs es "C: \ Archivos de programa \ nodejs", que es un alias para otra ubicación en mi máquina que nvm usa para descargar en caché (no APPDATA), supongo que elegí una ubicación diferente al instalar nvm.
Moika cumple el

2
Gracias, probablemente necesiten corregir la forma en que npm se actualiza en cada versión antigua de nodejs en nvm windows.
rbinsztock

1
Eso me ayudó a actualizar npm que vino con el Nodo 10.x. ¡Gracias!
andypotato

2
Trabajado en las ventanas con v10.15.3 nodejs, tuvo que cambiar mva reny rma dely rmdirpara mí.
deerchao

17

Cambiar las versiones de npm en sistemas operativos basados ​​en Linux todavía no es un proceso sencillo de comando. He hecho lo siguiente para volver a la versión anterior de npm. Esto debería funcionar para que funcione cualquier versión de npm. Primero instale la versión de npm que desea usar:

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

Elimine el enlace sym en / usr / local / bin /

sudo rm /usr/local/bin/npm

Recree el enlace sym utilizando la versión deseada de npm que haya instalado

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

1
Seguí estas instrucciones tratando de pasar de 2.14.7 a 2.15.9, y ahora cuando escribo npm -v, obtengo 3.8.6. Maldición
Kyle Baker,

3
Después de probar varias cosas, para mí, solo usar sudo npm install -g npm@x.x.xme da esa respuesta de la versión npm -v. Esto al menos funcionó yendo de 4.xa 2.15.9, de todos modos.
Kyle Baker, el

1
En mi caso sudo npm install -g npm@4.6.1solo instalé 4.6.1 pero todavía se usaba npm 5.1.0. Tu consejo me ayuda a cambiar a 4.6.1.
Hung Tran

8

Al mirar www.npmjs.com/install.sh descubrí que hay una manera de instalar una versión específica configurando una variable de entorno

export npm_install="2.14.14"

Luego ejecute el script de descarga como se describe en npmjs.com :

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

Si omite configurar la variable npm_install , instalará la versión que han marcado como la última


2
Tuve que usar curl -L https://www.npmjs.com/install.sh | sudo sh, aaaa, y este método no funcionó, obteniendo la última versión a pesar de haber exportado dicha variable de entorno. Maldita sea. Quería la versión 2.15.9 de 2.14.7, la respuesta a continuación me puso en 3.8.6, y ahora esta respuesta me coloca en 4.0.2. WTF
Kyle Baker, el

6

En Windows, ejecute su terminal como administrador (en caso de que haya problemas de permisos como los que tuve). Luego use una versión de nodo específica (digamos 7.8.0) por

nvm use 7.8.0

luego actualice su npm a la versión específica deseada por

npm install -g npm@5.0.3


2

Ligera variación en las instrucciones anteriores, funcionó para mí. (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

Tuve el mismo problema después de instalar nvm-windowssobre la instalación existente de Node. La solución fue simplemente seguir las instrucciones:

También debe eliminar la ubicación de instalación npm existente (por ejemplo, "C: \ Users \ AppData \ Roaming \ npm") para que la ubicación de instalación nvm se use correctamente en su lugar.

Instalación y actualizaciones


0

Instalación y uso de NVM en Windows

A continuación se detallan los pasos para la instalación de NVM en Windows:

NVM significa administrador de versiones de nodo, que ayudará a cambiar las versiones de su nodo para un uso específico. También permite al usuario trabajar con múltiples versiones de npm y nodos.

Instalar la configuración de nvm. Use el comando "nvm list" para verificar la lista de la versión de nodo instalada. Escriba "nvm use número de versión [6.9.3]" para cambiar de versión. Para más información

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.