it-swarm.com.de

Warum sagt die Installation von npm, dass ich Abhängigkeiten nicht erkannt habe?

Ich habe ein Knotenpaket. Wenn ich npm install von der Paketwurzel aus ausführt, werden einige Dinge installiert, es werden jedoch mehrere Fehlermeldungen ausgegeben, die folgendermaßen aussehen:

npm WARN nicht erfüllte Abhängigkeit/Users/seanmackesey/google_drive/code/explore/generator/node_modules/findup-sync/node_modules/glob erfordert [email protected]'~1.2.0 ', wird jedoch geladen

Ich muss verwirrt sein, was genau npm install tut. Wenn es eine Abhängigkeit erkennt, sollte es nicht installiert werden? Unter welchen Bedingungen gibt es Fehlermeldungen wie diese und wie kann ich die Abhängigkeiten auflösen?

387
Sean Mackesey

Ich glaube es liegt daran, dass die Abhängigkeitsauflösung etwas kaputt ist, siehe https://github.com/isaacs/npm/issues/1341#issuecomment-20634338

Nachfolgend die mögliche Lösung:

  1. Manuelles Installieren der Top-Level-Module mit nicht ermittelten Abhängigkeiten: Npm install [email protected]

  2. Strukturieren Sie Ihr package.json neu. Platzieren Sie alle übergeordneten Module (dient als Abhängigkeit für andere Module) im unteren Bereich.

  3. Führen Sie den Befehl 'npm install' erneut aus. 

Das Problem wurde möglicherweise dadurch verursacht, dass npm das Paket aufgrund eines Zeitlimits oder eines anderen Problems nicht heruntergeladen hat. 

Hinweis: Sie können die ausgefallenen Pakete auch manuell mit npm install [email protected] installieren.

Bevor Sie 'npm install' ausführen, kann es hilfreich sein, die folgenden Schritte auszuführen:

  • entferne node_modules mit rm -rf node_modules /
  • npm Cache sauber ausführen

Warum ist 'Entfernen von node_modules' manchmal notwendig? Wenn ein geschachteltes Modul während der Installation von npm nicht installiert werden kann, werden bei einer nachfolgenden Installation von npm diese fehlenden verschachtelten Abhängigkeiten nicht erkannt. 

In diesem Fall reicht es manchmal aus, die Abhängigkeit der verschachtelten Module auf der obersten Ebene zu entfernen und die Installation von npm erneut auszuführen. Sehen 

384
dule

Es ist mir passiert, als das WLAN während eines npm install ausgefallen ist. Durch Entfernen von node_modules und erneutes Ausführen von npm install wurde das Problem behoben.

78
geon

Ich habe das Problem mithilfe dieser Befehlszeilen behoben 

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

Es ist fertig!

33
zatamine

Ein Upgrade von NPM auf die neueste Version kann dabei sehr hilfreich sein. Die Antwort von dule ist richtig, um zu sagen, dass das Abhängigkeitsmanagement etwas kaputt ist, aber es scheint, dass dies hauptsächlich für ältere Versionen von npm gilt.

Der Befehl npm list gibt Ihnen eine Liste aller installierten node_modules. Beim Upgrade von Version 1.4.2 auf Version 2.7.4 wurden viele Module, die zuvor mit WARN unmet dependency gekennzeichnet waren, nicht mehr als solche gekennzeichnet.

Um npm zu aktualisieren, sollten Sie unter MacOSX oder Linux npm install -g npm eingeben. Unter Windows stellte ich fest, dass das erneute Herunterladen und Ausführen des Installationsprogramms von nodejs eine effektivere Methode zum Aktualisieren von npm war.

11
stephen

Die obigen Antworten haben mir auch nach dem Löschen des node_modules-Verzeichnisses nicht wirklich geholfen.

Der folgende Befehl hat mir endlich geholfen: 

npm config set registry http://registry.npmjs.org/

Beachten Sie, dass hierbei Knotenmodule über eine unsichere HTTP-Verbindung abgerufen werden. 

Src: https://stackoverflow.com/a/13119867/4082503

9
Vinay Vemula

Für jeden -- UNMET PEER DEPENDENCY zum Beispiel. -- UNMET PEER DEPENDENCY [email protected], installiere diese Abhängigkeit mit npm install --save [email protected], bis du keinen UNMET DEPENDENCIES mehr hast.

Viel Glück.

3
Akash

Das hat es für mich gelöst:

  1. Korrigieren Sie die Versionsnummern in package.json entsprechend den Fehlern.
  2. node_modules (rm -rf node_modules) entfernen;
  3. npm install erneut ausführen.

Wiederholen Sie diese Schritte, bis keine Fehler mehr angezeigt werden.

2
user1585939

--dev, das devDependencies rekursiv installiert (und seine Ausführung für immer läuft ..). 

Sie können versuchen, den Ordner "node_moduls" zu entfernen, den npm-Cache zu bereinigen und "npm i" erneut auszuführen

1
arielhad

Dieses Problem ist bei der Installation von reakt-Paketen aufgetreten. Dies hat bei mir funktioniert: npm install --save <package causing this error>

1
korp

Ich hatte ein ähnliches Problem, als ich die React Native CLI installierte. Ich war mir nicht sicher, welches /node_modules-Verzeichnis ich nach dem Lesen der Antworten entfernen sollte. Ich bin schließlich einfach gerannt

npm update -g

und konnte das Paket danach installieren.

1
wuliwong

In meinem Fall hat das Update von npm das Problem gelöst.

Sudo npm install -g npm
1
Marcelo Gumiero

Etwas Ähnliches würde ich noch einen weiteren Schritt hinzufügen.

Beachten Sie, dass bei npm-Version> 1.4.9 bei 'npm install' devDependencies installiert wird. Versuchen Sie zuerst, vorhandene Module und den Cache zu entfernen:

remove node_modules $ rm -rf node_modules/
run $ npm cache clean

Dann versuche es:

npm install --dev
npm update --dev

Dies löst zumindest die rekursive Abhängigkeitsauflösung auf.

1
John Doe

Ich habe versucht, an einem automatisierten Bereitstellungssystem zu arbeiten, auf dem npm install ausgeführt wird, daher würden viele dieser Lösungen für mich nicht automatisiert funktionieren. Ich war nicht in der Lage, node_modules/ zu löschen/neu zu erstellen, noch konnte ich die Node.js-Versionen leicht ändern.

So endete ich npm shrinkwrap - fügte die npm-shrinkwrap.json-Datei zu meinem Implementierungspaket hinzu und installierte von dort aus. Das hat das Problem für mich behoben. Mit der Shrinkwrap-Datei als "Helfer" schien npm in der Lage zu sein, die richtigen Pakete zu finden und sie für mich installieren zu lassen. (Shrinkwrap hat auch andere Funktionen, aber dafür brauchte ich es in diesem speziellen Fall.).

1
Uberbrady

Ich führe npm list aus und installiere alle Pakete, die als UNMET DEPENDENCY aufgeführt sind

Zum Beispiel:

├── UNMET DEPENDENCY [email protected]^0.23.1 
npm install [email protected]^0.23.1

1
achasinh

npm install installiert alle Pakete von npm-shrinkwrap.json, ignoriert jedoch möglicherweise Pakete in package.json, wenn sie im vorherigen nicht voreingestellt sind.

Wenn Ihr Projekt über einen npm-shrinkwrap.json verfügt, stellen Sie sicher, dass Sie npm shrinkwrap ausführen, um es jedes Mal neu zu generieren, wenn Sie add/remove/change package.json hinzufügen.

0
Marius

Aktualisierung auf 4.0.0

Das Aktualisieren auf 4 ist so einfach wie das Aktualisieren Ihrer Angular-Abhängigkeiten auf die neueste Version und das Überprüfen auf Animationen. Dies funktioniert für die meisten Anwendungsfälle.

Unter Linux/Mac: 

npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest [email protected] --save 

Unter Windows:

npm install @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] [email protected] --save

Führen Sie dann den Befehl ng serv oder npm start aus, den Sie normalerweise verwenden, und alles sollte funktionieren.

Wenn Sie sich auf Animationen verlassen, importieren Sie die neue BrowserAnimationsModule aus @angular/platform-browser/animations in Ihr Stammverzeichnis NgModule. Andernfalls wird Ihr Code kompiliert und ausgeführt, aber Animationen lösen einen Fehler aus. Importe aus @angular/core wurden nicht mehr verwendet. Importe aus dem neuen Paket verwenden 

import { trigger, state, style, transition, animate } from '@angular/animations';.
0
Aman Agnihotri

Achten Sie auf Ihre Winkelversion. Wenn Sie unter Winkel 2.x.x arbeiten, müssen Sie möglicherweise auf Winkel 4.x.x umsteigen

Einige Abhängigkeiten benötigen Winkel 4

Hier finden Sie ein Tutorial zur Installation von angle 4 oder zum Aktualisieren Ihres Projekts.

0
Terai