¿Por qué la instalación npm dice que tengo dependencias no satisfechas?
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?
400
3
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 findup-sync@0.1.2
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 findup-sync@0.1.2
.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 posteriornpm 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éaseMe pasó cuando el WIFI se cayó durante una instalación
npm
. Quitandonode_modules
y volviendo a ejecutarnpm install
se arregló.Las respuestas anteriores no me ayudaron del todo incluso después de eliminar el directorio
node_modules
.El siguiente comando me ayudó finalmente:
Tenga en cuenta que esto extrae los módulos del nodo a través de una conexión HTTP insegura.
Src: https://stackoverflow.com/a/13119867/4082503