Diferencia entre NPM y NVM

82

Sé que npm es el administrador de paquetes y nvm es el administrador de versiones del nodo. Actualmente estoy tratando de instalar automáticamente mi entorno de desarrollo y producción usando Bash y olvidé cómo comencé y en qué orden. Después de instalar npm, encontré que nuestro nvm no estaba instalado.

¿Todavía necesito instalar nvm? Si es así, ¿cuál es el beneficio?

JohnTheBeloved
fuente
5
nvm instala Node que instala npm. Si no necesita / desea cambiar entre las versiones de Node, probablemente no necesite nvm.
Felix Kling

Respuestas:

96

nvm(Node Version Manager) es una herramienta que le permite descargar e instalar Node.js. Comprueba si lo tienes instalado a través de nvm --version.

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash

npm(Node Package Manager) es una herramienta que le permite instalar paquetes javascript. Comprueba si lo tienes instalado a través de npm --version.

npmviene con Node.js, por lo que si tiene un nodo instalado ( node --version), lo más probable es que también lo haya npminstalado.

No es necesario a nvmmenos que desee mantener varias versiones de Node.js instaladas en su sistema o si desea actualizar su versión actual.

ThomasReggi
fuente
1
lo que significa que puedo usar en nvm install watchmanlugar de npm install watchmanporque no quiero cambiar las versiones de npm
AVI
@JokerFan Eso no es exactamente cierto. No puedes correr nvm install watchman. Cuando cambia su versión de nodecon nvmla versión de npmcambios también.
ThomasReggi
2
¿Tiene sentido tener varias versiones de Node.js en el sistema?
Ajay S
2
@AjayS Puede trabajar en dos proyectos separados que tengan requisitos de versión de nodo muy específicos, muy comunes para los contratistas.
Juan Mendes
23

nvm como dijiste es un administrador de versiones de nodejs "activo". Puede tener varias versiones de nodo en la misma máquina y cambiar haciendo "nvm use version". npm respeta nvm si está presente en la máquina, lo que significa que si tiene 0.12.7 activo y hace npm install -g uuid, lo instalará globalmente bajo 0.12.7 pero si cambia a 4.0.0, uuid ya no estará disponible a nivel mundial.

En cualquier caso, no es necesario que nvm instale paquetes.

masimplo
fuente
¿Qué versión viene con nvm por defecto?
JohnTheBeloved
@JohnTheBeloved: Ninguno. nvm apunta a la versión de su sistema operativo por defecto.
Felix Kling
1
@FelixKling tiene razón. Puede hacer "nvm ls" para ver las versiones utilizadas por nvm y también "node -v" para ver el nodo actualmente activo.
masimplo