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 installinstalará / actualizará devDependencies a menos que se agregue el indicador de--production -
npm updateignorará devDependencies a menos que se--devindicador--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.