node.js - node - ¿Por qué npm install dice que tengo dependencias no satisfechas?
npm version (16)
Tengo un paquete de nodo. 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 dependencia no satisfecha / Usuarios / 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 sobre lo que hace exactamente la npm install
. 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?
--dev instalando devDependencies de forma recursiva (y se ejecuta para siempre ...) ¿Cómo puede ayudar a resolver las diferencias de versión?
Puede intentar eliminar la carpeta node_moduls, luego limpiar la caché npm y luego ejecutar ''npm i'' nuevamente
Actualizar NPM a la última versión puede ayudar enormemente con esto. La respuesta anterior de Dule es correcta al decir que la administración de dependencias está un poco dañada, pero parece que esto es principalmente para versiones anteriores de npm.
El comando npm list
le proporciona una lista de todos los npm list
instalados. Cuando actualicé la versión 1.4.2 a la versión 2.7.4, muchos módulos que antes estaban marcados con la WARN unmet dependency
no WARN unmet dependency
ya no se mencionaban como tales.
Para actualizar npm, debe escribir npm install -g npm
en MacOSX o Linux. En Windows, descubrí que volver a descargar y volver a ejecutar el instalador de nodejs era una forma más efectiva de actualizar npm.
Algo parecido, agregaría otro paso.
Tenga en cuenta que en la versión npm> 1.4.9, ''npm install'' instala devDependencies. Primero intente eliminar módulos existentes y caché:
remove node_modules $ rm -rf node_modules/
run $ npm cache clean
Entonces intenta:
npm install --dev
npm update --dev
Esto al menos resolverá la resolución de dependencia recursiva.
Arreglé el problema usando estas líneas de comando
-
$ rm -rf node_modules/
-
$ sudo npm update -g npm
-
$ npm install
¡Está hecho!
Creo que es porque la resolución de dependencia está un poco dañada, consulte https://github.com/isaacs/npm/issues/1341#issuecomment-20634338
A continuación se presentan las posibles soluciones:
Es necesario instalar manualmente los módulos de nivel superior, que contienen dependencias no satisfechas: npm install [email protected]
Re-estructurar su package.json. Coloque todos los módulos de alto nivel (sirve como una dependencia para otros módulos) en la parte inferior.
Vuelva a ejecutar el comando ''npm install''.
El problema podría deberse a que npm no pudo descargar todo el paquete debido a que se agotó el tiempo de espera u otra cosa.
Nota: También puede instalar los paquetes fallidos manualmente, así como usar npm install [email protected].
Antes de ejecutar ''npm install'', puede ser útil realizar los siguientes pasos:
- eliminar node_modules utilizando rm -rf node_modules /
- ejecutar npm caché limpio
¿Por qué a veces es necesario ''eliminar node_modules''? Cuando un módulo anidado no se instala durante la instalación npm, la instalación npm subsiguiente no 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 ejecutar la instalación de npm nuevamente. Ver
En mi caso, la actualización de npm lo solucionó.
sudo npm install -g npm
Encontré este problema cuando estaba instalando paquetes react y esto me npm install --save <package causing this error>
: npm install --save <package causing this error>
Estaba tratando de trabajar en un sistema de implementación automatizada que ejecuta la npm install
, por lo que muchas de estas soluciones no me funcionarían de forma automática. No estaba en condiciones de ir a eliminar / volver a crear node_modules/
ni podía cambiar fácilmente las versiones de Node.js.
Así que terminé ejecutando npm shrinkwrap
- agregando el archivo npm-shrinkwrap.json
a mi paquete de implementación, y ejecutando instalaciones desde allí. Eso me solucionó el problema; con el archivo shrinkwrap como "ayudante", npm parecía poder encontrar los paquetes correctos e instalarlos para mí. (Shrinkwrap tiene otras características también, pero esto era lo que necesitaba para este caso en particular).
Esto lo resolvió para mí:
- Corrija los números de versión en
package.json
, de acuerdo con los errores; - Eliminar
node_modules
(rm -rf node_modules
); -
npm install
.
Repita estos pasos hasta que no haya más errores.
Las respuestas anteriores no me ayudaron completamente incluso después de eliminar el directorio node_modules
.
Por debajo del comando me ayudó finalmente:
npm config set registry http://registry.npmjs.org/
Tenga en cuenta que esto extrae los módulos de nodo a través de una conexión HTTP insegura.
Src: https://.com/a/13119867/4082503
Me pasó cuando el WIFI se npm install
durante una npm install
. La eliminación de node_modules
y la ejecución de la npm install
solucionó.
Para cada -- UNMET PEER DEPENDENCY
, por ej. -- UNMET PEER DEPENDENCY [email protected]
, instale esa dependencia con npm install --save [email protected]
hasta que no tenga más UNMET DEPENDENCIES
.
Buena suerte.
Tenga cuidado con su versión angular, si trabaja con angular 2.xx, entonces tal vez necesite actualizar a angular 4.xx
Algunas dependencias necesitan angular 4.
Aquí hay un tutorial sobre cómo instalar angular 4 o actualizar su proyecto.
Tuve un problema similar mientras estaba instalando la CLI nativa de React. No estaba seguro de qué directorio /node_modules
debía eliminar después de leer las respuestas aquí. Eventualmente solo corri
npm update -g
y pude instalar el paquete después de eso.
npm list
e instalé todos los paquetes listados como UNMET DEPENDENCY
Por ejemplo:
├── UNMET DEPENDENCY css-loader@^0.23.1
npm install css-loader@^0.23.1
Actualizando a 4.0.0
Actualizar a 4 es tan fácil como actualizar sus dependencias angulares a la última versión y verificar si desea animaciones. Esto funcionará para la mayoría de los casos de uso.
En Linux / Mac:
npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest --save
En Windows:
npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save
Luego ejecute el comando ng serve o npm start que normalmente usa, y todo debería funcionar.
Si confía en Animaciones, importe el nuevo BrowserAnimationsModule
desde @angular/platform-browser/animations
en su raíz NgModule
. Sin esto, su código se compilará y ejecutará, pero las animaciones generarán un error. Las importaciones de @angular/core
quedaron obsoletas, use las importaciones del nuevo paquete
import { trigger, state, style, transition, animate } from ''@angular/animations'';.