¿Cómo reinstalas las dependencias de una aplicación usando npm?
386
¿Existe una manera simple de reinstalar todos los paquetes de los que depende mi aplicación (es decir, están en la carpeta de mis módulos node_modules)?
Convenido; suponiendo que haya creado un package.jsonarchivo para su aplicación.
JohnnyHK
99
Tenga en cuenta que la ejecución npm installdespués de eliminar el node_modulesdirectorio puede dar como resultado diferentes versiones de dependencias definidas en la extracción package.json. Si necesita versiones muy específicas de dependencias para su aplicación, tenga cuidado y mire npm shrinkwrapo revise su node_modulesdirectorio para controlar la fuente.
smithclay
10
@smithclay He definido la versión explícita de los paquetes en el paquete package.json de mi aplicación, así que debería estar bien, ¿verdad?
trusktr
@vadim Estaba haciendo algunas pruebas sobre el comportamiento npm instally siempre reinstala las dependencias y actualiza los paquetes a las últimas versiones según lo permitido por package.json. Por lo tanto, node_modulesno es necesario eliminar carpetas a menos que piense que está dañado. ¿Hay alguna razón por la que pienses que debería eliminarse? Sin embargo, si la intención es eliminar cualquier paquete que sea extraño, entonces podría ejecutarlo en su npm prunelugar
himanshu
1
@himanshu tiene razón, npm installactualiza todos los módulos al estado package.json. Pero la pregunta es cómo reinstalar todos los paquetes . Por lo tanto, pueden estar dañados o pueden necesitar reconstruir las partes binarias después de la actualización node.js verison.
Vadim Baryshev
96
La forma correcta es ejecutar npm update. Es un comando realmente poderoso, actualiza los paquetes faltantes y también comprueba si se puede usar una versión más nueva del paquete ya instalado.
Pero si no hay un paquete más nuevo, entonces esto no hará nada, ¿verdad? Estoy tratando de forzar la reinstalación incluso si el paquete ya tiene la última versión.
trusktr
2
Si no faltan paquetes, verificará si puede usar las últimas versiones de paquetes (incluidas las dependencias de los paquetes) que figuran en package.json. Entonces, en esencia, actualizará los paquetes si es posible. Pero no se reinstalará. Si desea hacerlo utilizando comandos, puede ejecutar npm uninstall <package_name>para desinstalar un paquete específico o ejecutar npm uninstallpara desinstalar todos los paquetes.
himanshu
1
Intenté hacerlo npm uninstallsin especificar un paquete, pero eso arroja un error.
trusktr
¿Tiene package.json en el directorio de la carpeta donde ejecutó esto? Si está desinstalando el paquete global, deberá agregar -g
himanshu el
1
El enlace que proporciona está muerto, ¿puede proporcionar uno nuevo? (Encontré esto pero no estoy seguro de que sea aceptable cambiarlo)
Motti
64
La mayoría de las veces uso el siguiente comando para lograr una reinstalación completa de todos los módulos de nodo (asegúrese de estar en la carpeta del proyecto).
rm -rf node_modules && npm install
También puede ejecutar npm cache cleandespués de eliminar la node_modulescarpeta para asegurarse de que no haya dependencias en caché.
Después de instalarlo, puede usar el siguiente comando:
reinstall
La única diferencia con la eliminación manual de node_modulescarpetas y la creación npm installes que este comando borra automáticamente el caché de npm. Por lo tanto, puede obtener tres pasos en un solo comando.
upd:npx reinstall es una forma de ejecutar este comando sin instalar globalmente el paquete (solo para npm5 +)
@ g00glen00b He editado para que ahora incluya información útil sin hipervínculos
Rob
@ g00glen00b Eso está perfectamente bien; no lo convierte en un candidato para su eliminación. Consulte esta publicación : en particular, trata las respuestas cortas con un enlace, siempre que haya información útil (es decir, el nombre de la biblioteca) cuando se elimina el hipervínculo
que elimina el node_modulesdirectorio y realiza npm installentonces. La eliminación antes de la instalación asegura que todos los paquetes se reinstalen.
Siga este paso para reinstalar módulos de nodo y actualizarlos
funciona incluso si la carpeta node_modules no existe. ahora ejecute el siguiente comando sincrónicamente. también puedes usar "actualización npm" pero creo que esta es la forma preferida
npm outdated // not necessary to run this command, but this will show outdated dependencies
npm install -g npm-check-updates // to install the "ncu" package
ncu -u --packageFile=package.json // to update dependencies version in package.json...don't run this command if you don't need to update the version
npm install: will install dependencies in your package.json file.
si está de acuerdo con la versión de sus dependencias en su archivo package.json, no es necesario que siga esos pasos, solo ejecute
npm rebuild
también podría ayudar con algunos problemas con las dependencias nativasnpm update <packageName>
funciona muy bienRespuestas:
La forma más fácil que puedo ver es eliminar la
node_modules
carpeta y ejecutarlanpm install
.fuente
package.json
archivo para su aplicación.npm install
después de eliminar elnode_modules
directorio puede dar como resultado diferentes versiones de dependencias definidas en la extracciónpackage.json
. Si necesita versiones muy específicas de dependencias para su aplicación, tenga cuidado y mirenpm shrinkwrap
o revise sunode_modules
directorio para controlar la fuente.npm install
y siempre reinstala las dependencias y actualiza los paquetes a las últimas versiones según lo permitido por package.json. Por lo tanto,node_modules
no es necesario eliminar carpetas a menos que piense que está dañado. ¿Hay alguna razón por la que pienses que debería eliminarse? Sin embargo, si la intención es eliminar cualquier paquete que sea extraño, entonces podría ejecutarlo en sunpm prune
lugarnpm install
actualiza todos los módulos al estado package.json. Pero la pregunta es cómo reinstalar todos los paquetes . Por lo tanto, pueden estar dañados o pueden necesitar reconstruir las partes binarias después de la actualización node.js verison.La forma correcta es ejecutar
npm update
. Es un comando realmente poderoso, actualiza los paquetes faltantes y también comprueba si se puede usar una versión más nueva del paquete ya instalado.Lea la Introducción a NPM para comprender qué puede hacer con npm.
fuente
npm uninstall <package_name>
para desinstalar un paquete específico o ejecutarnpm uninstall
para desinstalar todos los paquetes.npm uninstall
sin especificar un paquete, pero eso arroja un error.La mayoría de las veces uso el siguiente comando para lograr una reinstalación completa de todos los módulos de nodo (asegúrese de estar en la carpeta del proyecto).
También puede ejecutar
npm cache clean
después de eliminar lanode_modules
carpeta para asegurarse de que no haya dependencias en caché.fuente
npm
actualizó el comando CLI parainstall
y agregó la--force
bandera.El argumento
--force
(o-f
) obligaránpm
a buscar recursos remotos incluso si existe una copia local en el disco.Ver
npm install
fuente
Puede usar el módulo de reinstalación que se encuentra en npm.
Después de instalarlo, puede usar el siguiente comando:
La única diferencia con la eliminación manual de
node_modules
carpetas y la creaciónnpm install
es que este comando borra automáticamente el caché de npm. Por lo tanto, puede obtener tres pasos en un solo comando.upd:
npx reinstall
es una forma de ejecutar este comando sin instalar globalmente el paquete (solo para npm5 +)fuente
Puedes hacer esto con un simple comando:
fuente
Para Windows puedes usar
que elimina el
node_modules
directorio y realizanpm install
entonces. La eliminación antes de la instalación asegura que todos los paquetes se reinstalen.fuente
Siga este paso para reinstalar módulos de nodo y actualizarlos
funciona incluso si la carpeta node_modules no existe. ahora ejecute el siguiente comando sincrónicamente. también puedes usar "actualización npm" pero creo que esta es la forma preferida
si está de acuerdo con la versión de sus dependencias en su archivo package.json, no es necesario que siga esos pasos, solo ejecute
fuente