node.js - node - npm install vs. update-¿cuál es la diferencia?
update node modules (4)
En la mayoría de los casos, esto instalará la última versión del módulo publicado en npm.
npm install express --save
o mejor para actualizar el módulo a la última versión de uso:
npm install express@latest --save --force
--save
: El paquete aparecerá en sus dependencias.
Más información: npm-install
¿Cuál es la diferencia práctica entre npm install
y npm update
? ¿Cuándo debo usar cuál?
La diferencia entre la instalación de npm y el manejo de actualizaciones de npm de las versiones de paquetes especificadas en package.json :
{
"name": "my-project",
"version": "1.0", // install update
"dependencies": { // ------------------
"already-installed-versionless-module": "*", // ignores "1.0" -> "1.1"
"already-installed-semver-module": "^1.4.3" // ignores "1.4.3" -> "1.5.2"
"already-installed-versioned-module": "3.4.1" // ignores ignores
"not-yet-installed-versionless-module": "*", // installs installs
"not-yet-installed-semver-module": "^4.2.1" // installs installs
"not-yet-installed-versioned-module": "2.7.8" // installs installs
}
}
Resumen : la única gran diferencia es que un módulo ya instalado con versiones borrosas ...
- se ignora por la
npm install
- se actualiza por
npm update
Además : install
y update
de forma predeterminada el manejo de devDependencies de manera diferente
-
npm install
instalará / actualizará devDependencies a menos que se agregue el indicador de--production
-
npm update
ignorará devDependencies a menos que se--dev
indicador--dev
¿Por qué usar npm install
en absoluto?
Porque la npm install
hace más cuando busca además de manejar sus dependencias en package.json
. Como puedes ver en la instalación de npm puedes ...
- instalar manualmente los módulos de nodo
-
npm install -g <name>
como globales (lo que los coloca en lanpm install -g <name>
del shell) usandonpm install -g <name>
- Instala ciertas versiones descritas por las etiquetas git.
- instalar desde una url git
- forzar una reinstalación con
--force
Muchas distinciones ya han sido mencionadas. Aquí hay uno más:
La ejecución de npm install
en la parte superior de su directorio de origen ejecutará varios scripts: prepublish
, preinstall
, install
, postinstall
. Dependiendo de lo que hagan estos scripts, una npm install
puede hacer mucho más trabajo que solo instalar dependencias.
Acabo de tener un caso de uso en el que prepublish
llamaría make
y Makefile
fue diseñado para obtener dependencias si el package.json
se actualizó. npm install
desde Makefile
hubiera dado lugar a una recursión infinita, mientras que la npm update
funcionó bien, instalando todas las dependencias para que la compilación pudiera continuar incluso si se llamaba a make
directamente.
npm instala instala todos los módulos que se enumeran en el archivo package.json
y sus dependencias.
npm update actualiza todos los paquetes en el directorio node_modules
y sus dependencias.
npm install express instala solo el módulo express y sus dependencias.
npm update express express módulo express (a partir de [email protected], no actualiza sus dependencias).
Las actualizaciones son para cuando ya tenga el módulo y desee obtener la nueva versión.