Tengo un paquete de Node. Cuando ejecuto npm install
desde la raíz del paquete, instala un montón de cosas, pero luego imprime varios mensajes de error que se parecen a esto:
npm WARN unmet dependency /Users/seanmackesey/google_drive/code/explore/generator/node_modules/findup-sync/node_modules/glob requires graceful-fs@'~1.2.0' but will load
Debo estar confundido sobre lo que hace exactamente npm install
. Si detecta una dependencia, ¿no debería instalarla? ¿Bajo qué condiciones me da mensajes de error como este, y cómo puedo resolver las dependencias?
Creo que es porque la resolución de la dependencia está un poco rota, ver https://github.com/npm/npm/issues/1341#issuecomment-20634338
Las siguientes son las posibles soluciones:
Necesitas instalar manualmente los módulos de nivel superior, que contienen dependencias no satisfechas:
npm install [email protected]
Reestructure su package.json. Coloca todos los módulos de alto nivel (que sirven como dependencia para otros módulos) en la parte inferior.
Vuelva a ejecutar el comando npm install
.
El problema puede deberse a que npm's no ha podido descargar todos los paquetes debido a que se ha agotado el tiempo de espera o a alguna otra cosa.
Nota: También puede instalar los paquetes fallidos manualmente usando npm install [email protected]
.
Antes de ejecutar npm install
, realizar los siguientes pasos puede ayudar:
rm -rf node_modules/
npm cache clean
.¿Por qué 'eliminar node_modules' a veces es necesario?
Cuando un módulo anidado no se instala durante npm install
, la posterior npm install
no detectará las dependencias anidadas que faltan.
Si ese es el caso, a veces es suficiente con eliminar la dependencia de nivel superior de esos módulos anidados que faltan, y ejecutar de nuevo npm install
. Véase
Las respuestas anteriores no me ayudaron del todo incluso después de eliminar el directorio node_modules
.
El siguiente comando me ayudó finalmente:
npm config set registry http://registry.npmjs.org/
Tenga en cuenta que esto extrae los módulos del nodo a través de una conexión HTTP insegura.