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?
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:
Manuelles Installieren der Top-Level-Module mit nicht ermittelten Abhängigkeiten: Npm install [email protected]
Strukturieren Sie Ihr package.json neu. Platzieren Sie alle übergeordneten Module (dient als Abhängigkeit für andere Module) im unteren Bereich.
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:
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
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.
Ich habe das Problem mithilfe dieser Befehlszeilen behoben
$ rm -rf node_modules/
$ Sudo npm update -g npm
$ npm install
Es ist fertig!
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.
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.
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.
Das hat es für mich gelöst:
package.json
entsprechend den Fehlern.node_modules
(rm -rf node_modules
) entfernen;npm install
erneut ausführen.Wiederholen Sie diese Schritte, bis keine Fehler mehr angezeigt werden.
--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
Dieses Problem ist bei der Installation von reakt-Paketen aufgetreten. Dies hat bei mir funktioniert: npm install --save <package causing this error>
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.
In meinem Fall hat das Update von npm das Problem gelöst.
Sudo npm install -g npm
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.
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.).
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
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.
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';.
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.