Start·Fehlermeldungen

npm · npm

Die Meldung

npm ERR! ERESOLVE unable to resolve dependency tree

Was es bedeutet

Ab npm 7 werden peerDependencies-Bereiche erzwungen, und diese Meldung sagt, dass npm keine Versionskombination fand, die alle gleichzeitig erfüllt. Häufig ist das, wenn das zu installierende Paket einen Peer-Bereich hat, der Ihre vorhandene react- oder typescript-Version ausschließt — besonders direkt nach einem Major-Upgrade. Lesen Sie die Zeilen Found: und Could not resolve:, um zu sehen, wer was fordert, und ziehen Sie eines der beiden auf eine passende Version: das ist der eigentliche Fix. npm install --legacy-peer-deps installiert unter vollständiger Missachtung der Peer-Bereiche, bringt Sie also weiter, hinterlässt aber einen Baum, dem die Pakete nie zugestimmt haben — die Laufzeitfehler aus unpassenden Versionen bleiben Ihr Problem.

Die Lösung

npm install --legacy-peer-deps
Ausgegeben von
npm
npm
20

Bei npm steht die Ursache in der ersten code-XXXX-Zeile und nicht in den letzten sechs npm-ERR!-Zeilen, und wenn der Fehler aus dem Abhängigkeitsbaum oder einem Native-Build statt aus eigenem Code kommt, löst das Löschen von node_modules mit erneuter Installation etwa die Hälfte.

Eine Fehlermeldung lesen

  • Von der ersten Zeile abwärts lesen. Weiter unten geht es um das Innere des Werkzeugs; die Ursache steht meist oben.
  • Gibt es Datei und Zeilennummer, dort anfangen — nicht der oberste Stack-Frame, sondern die oberste Zeile, die eine eigene Datei nennt.
  • Die Meldung wörtlich suchen, vorher aber eigene Pfade und Variablennamen entfernen; genau die verhindern den Treffer.
  • Dieselbe Lage wird je Werkzeugversion anders formuliert. Passen die Treffer nicht, die Versionsnummer mit in die Suche.
  • Vor dem Einfügen einer Lösung prüfen, was sie verwirft. Manches davon lässt sich nicht zurückholen.

Häufige Fragen

Q. Was bedeutet „npm ERR! ERESOLVE unable to resolve dependency tree“?

Ab npm 7 werden peerDependencies-Bereiche erzwungen, und diese Meldung sagt, dass npm keine Versionskombination fand, die alle gleichzeitig erfüllt. Häufig ist das, wenn das zu installierende Paket einen Peer-Bereich hat, der Ihre vorhandene react- oder typescript-Version ausschließt — besonders direkt nach einem Major-Upgrade. Lesen Sie die Zeilen Found: und Could not resolve:, um zu sehen, wer was fordert, und ziehen Sie eines der beiden auf eine passende Version: das ist der eigentliche Fix. npm install --legacy-peer-deps installiert unter vollständiger Missachtung der Peer-Bereiche, bringt Sie also weiter, hinterlässt aber einen Baum, dem die Pakete nie zugestimmt haben — die Laufzeitfehler aus unpassenden Versionen bleiben Ihr Problem.

Q. Wie behebe ich das?

npm install --legacy-peer-deps — vor dem Ausführen oben prüfen, was dieser Befehl verwirft.

Q. Welches Werkzeug gibt das aus?

npm. Es gehört zu npm, und die Meldung hat 8 Wörter.

Verwandte Fehler