Warum sagt npm install, dass ich unerfüllte Abhängigkeiten habe?
Ich habe ein Node-Paket. Wenn ich npm install
aus dem Wurzelverzeichnis des Pakets ausführe, installiert es einen Haufen Dinge, gibt dann aber mehrere Fehlermeldungen aus, die wie diese aussehen:
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
Ich bin wohl verwirrt darüber, was genau npm install
macht. Wenn es eine Abhängigkeit erkennt, sollte es sie dann nicht installieren? Unter welchen Bedingungen gibt es Fehlermeldungen wie diese, und wie kann ich die Abhängigkeiten auflösen?
400
3
Ich glaube, es liegt daran, dass die Abhängigkeitsauflösung ein bisschen kaputt ist, siehe https://github.com/npm/npm/issues/1341#issuecomment-20634338
Nachfolgend sind die möglichen Lösungen aufgeführt:
Manuelles Installieren der Top-Level-Module, die nicht erfüllte Abhängigkeiten enthalten:
npm install findup-sync@0.1.2
Strukturieren Sie Ihre package.json neu. Platzieren Sie alle High-Level-Module (die als Abhängigkeiten für andere Module dienen) am Ende.
Führen Sie den Befehl "npm install" erneut aus.
Das Problem könnte dadurch verursacht werden, dass npm's nicht alle Pakete herunterladen kann, weil die Zeit abgelaufen ist oder etwas anderes.
Hinweis: Sie können die fehlgeschlagenen Pakete auch manuell mit
npm install findup-sync@0.1.2
installieren.Bevor Sie
npm install
ausführen, können die folgenden Schritte helfen:rm -rf node_modules/
npm cache clean
ausWarum ist das Entfernen von node_modules' manchmal notwendig? Wenn ein verschachteltes Modul während
npm install
nicht installiert werden kann, wirdnpm install
die fehlenden verschachtelten Abhängigkeiten nicht erkennen.Wenn das der Fall ist, reicht es manchmal aus, die Top-Level-Abhängigkeit dieser fehlenden verschachtelten Module zu entfernen und
npm install
erneut auszuführen. SieheEs passierte mir, als das WIFI während einer
npm install
ausfiel. Das Entfernen vonnode_modules
und erneutes Ausführen vonnpm install
hat es behoben.Die obigen Antworten haben mir auch nach dem Löschen des
node_modules
Verzeichnisses nicht vollständig geholfen.Untenstehender Befehl hat mir schließlich geholfen:
Beachten Sie, dass dies Knotenmodule über eine unsichere HTTP-Verbindung abruft.
Src: https://stackoverflow.com/a/13119867/4082503