¿Por qué npm install dice que tengo dependencias no satisfechas?

Resuelto Sean Mackesey asked hace 10 años • 17 respuestas

Tengo un paquete de nodos. Cuando ejecuto npm installdesde la raíz del paquete, instala un montón de cosas, pero luego imprime varios mensajes de error que se ven así:

npm WARN dependencia no satisfecha /Users/seanmackesey/google_drive/code/explore/generator/node_modules/findup-sync/node_modules/glob requiere Graceful-fs@'~1.2.0' pero se cargará

Debo estar confundido acerca de qué npm installhace exactamente. Si detecta una dependencia, ¿no debería instalarla? ¿En qué condiciones me da mensajes de error como este y cómo puedo resolver las dependencias?

Sean Mackesey avatar Dec 25 '13 00:12 Sean Mackesey
Aceptado

Creo que se debe a que la resolución de dependencia está un poco rota, consulte https://github.com/npm/npm/issues/1341#issuecomment-20634338

A continuación se muestra la posible solución:

  1. Es necesario instalar manualmente los módulos de nivel superior que contienen dependencias no satisfechas: npm install [email protected]

  2. Reestructura tu paquete.json. Coloque todos los módulos de alto nivel (sirve como dependencia para otros módulos) en la parte inferior.

  3. Vuelva a ejecutar el npm installcomando.

El problema podría deberse a que npm no pudo descargar todo el paquete debido a un tiempo de espera agotado o algo más.

Nota: También puede instalar los paquetes fallidos manualmente usando npm install [email protected].

Antes de ejecutar npm install, realizar los siguientes pasos puede resultar útil:

  • eliminar node_modules usandorm -rf node_modules/
  • corrernpm cache clean

¿Por qué a veces es necesario 'eliminar node_modules'? Cuando un módulo anidado no se instala durante npm install, subsiguiente npm installno detectará las dependencias anidadas que faltan.

Si ese es el caso, a veces es suficiente eliminar la dependencia de nivel superior de los módulos anidados que faltan y npm installvolver a ejecutarlos. Ver

dule avatar Dec 24 '2013 18:12 dule

Me pasó cuando se cortó el WIFI durante un npm install. Quitarlo node_modulesy volver a ejecutarlo npm installlo solucionó.

geon avatar Apr 17 '2014 11:04 geon

Solucioné el problema usando estas líneas de comando

  • $ rm -rf node_modules/
  • $ sudo npm update -g npm
  • $ npm install

¡Está hecho!

zatamine avatar Oct 22 '2015 11:10 zatamine

Actualizar NPM a la última versión puede ser de gran ayuda con esto. La respuesta anterior de dule es correcta al decir que la gestión de dependencias está un poco defectuosa, pero parece que esto es principalmente para versiones anteriores de npm.

El comando npm listle proporciona una lista de todos los archivos instalados node_modules. Cuando actualicé de la versión 1.4.2 a la versión 2.7.4, muchos módulos que anteriormente estaban marcados WARN unmet dependencyya no aparecían como tales.

Para actualizar npm, debe escribir npm install -g npmen MacOSX o Linux. En Windows, descubrí que volver a descargar y ejecutar el instalador de nodejs era una forma más efectiva de actualizar npm.

S. Dixon avatar May 06 '2015 17:05 S. Dixon