2012-10-12 73 views
217

¿Existe una manera simple de reinstalar todos los paquetes de los que depende mi aplicación (es decir, están en la carpeta node_modules de mis aplicaciones)?¿Cómo se reinstalan las dependencias de una aplicación usando npm?

+4

'rebuild' NPM también podría ayudar a algunos problemas con las dependencias nativos –

+1

en caso de que ayuda a los demás: Si usted está tratando de instalar un paquete,' 'actualización NPM funciona muy bien – rinogo

Respuesta

354

La manera más fácil que puedo ver es eliminar la carpeta node_modules y ejecutar npm install.

+11

acordados; suponiendo que haya creado un archivo 'package.json' para su aplicación. – JohnnyHK

+7

Tenga en cuenta que la ejecución de 'npm install' después de eliminar el directorio' node_modules' puede dar como resultado que las versiones de las dependencias definidas en 'package.json' sean bajadas. Si necesita versiones de dependencias muy específicas para su aplicación, tenga cuidado y busque en 'npm shrinkwrap' o controle en su directorio' node_modules' el control de origen. – smithclay

+7

@smithclay He definido la versión explícita de los paquetes en package.json de mi aplicación, así que debería estar bien, ¿no? – trusktr

72

La forma correcta es ejecutar npm update. Es un comando realmente poderoso, actualiza los paquetes que faltan y también comprueba si se puede usar una versión más nueva del paquete ya instalado.

Lea Intro to NPM para comprender lo que puede hacer con npm.

+36

Pero si no hay un paquete más nuevo, entonces esto no hará nada, ¿verdad? Estoy intentando * forzar * reinstalar incluso si el paquete ya está en la última versión. – trusktr

+2

Si no faltan paquetes, comprobará si puede usar las últimas versiones de paquetes (incluidas las dependencias de los paquetes) enumerados 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 ' para desinstalar un paquete específico o ejecutar 'npm uninstall' para desinstalar todos los paquetes. – himanshu

+1

Intenté hacer simplemente 'npm uninstall' sin especificar un paquete, pero eso arroja un error. – trusktr

20

La mayoría de las veces utilizo 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 clean después de quitar la carpeta node_modules para asegurarse de que no hay ninguna dependencia de caché.

20

npm actualizan el mandato de instalación CLI y añade la bandera --force

El argumento -f o --force obligará npm a buscar recursos remotos, incluso si existe una copia local en el disco.

npm install

4

Puede utilizar el reinstall module que se encuentra en la NGP.

Después de instalarlo, puede utilizar el siguiente comando:

reinstall 

La única diferencia con la eliminación manual de node_modules carpeta y hacer npm install es que este comando automáticamente borrar la memoria caché de la NGP. Entonces, puedes obtener tres pasos en un comando.

+0

@ g00glen00b He editado para que ahora incluya información útil sin hipervínculos – Rob

+0

@ g00glen00b Eso está perfectamente bien; no lo hace un candidato para su eliminación. Por favor, consulte [esta publicación] (https://meta.stackexchange.com/questions/225370/your-answer-is-in-another-castle-when-is-an-answer-not-an-answer) - En particular aborda respuestas cortas con un enlace, siempre que haya alguna información útil (es decir, el nombre de la biblioteca) cuando se elimina el hipervínculo – Rob

Cuestiones relacionadas