Heim >Web-Frontend >js-Tutorial >Was bewirkt „npm install --legacy-peer-deps' und wann wird es empfohlen?

Was bewirkt „npm install --legacy-peer-deps' und wann wird es empfohlen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-28 14:15:19991Durchsuche

What does `npm install --legacy-peer-deps` do and when is it recommended?

Was macht npm install --legacy-peer-deps genau? Wann wird es empfohlen / Was ist ein potenzieller Anwendungsfall?

TL;DR:

  • NPM v7 installiert standardmäßig Peer-Abhängigkeiten; Dies ist bei früheren Versionen von NPM nicht der Fall.
  • NPM-Module müssen bestimmte Versionen ihrer Peer-Abhängigkeiten benennen.
  • Wenn Sie bereits eine Peer-Abhängigkeit installiert haben, jedoch nicht mit einer Version mit dem Namen Wenn Sie das Modul nicht verwenden, gibt NPM v7 einen Fehler aus.
  • Das Hinzufügen von --legacy-peer-deps ignoriert diese neue Anforderung, auf die Gefahr hin, dass es zu Fehlern kommt Änderungen.

--legacy-peer-deps stellt das Peer-Abhängigkeitsinstallationsverhalten von NPM v4 bis v6 wieder her

Eine Denkweise über dieses Flag ist, dass es nichts Neues bewirkt ; Vielmehr weist es NPM an, nichts Neues zu tun, da NPM v7 jetzt standardmäßig Peer-Abhängigkeiten installiert.

In vielen Fällen führt dies zu Versionskonflikten, die den Installationsprozess unterbrechen.

Das Flag --legacy-peer-deps wurde mit Version 7 eingeführt, um die automatische Installation von Peer-Abhängigkeiten zu umgehen. Es weist NPM an, Peer-Deps zu ignorieren und trotzdem mit der Installation fortzufahren. So war es früher mit NPM v4 bis v6.

Abhängigkeiten vs. Peer-Abhängigkeiten

Wenn Sie sich über den Unterschied zwischen regulären Deps und Peer-Deps nicht im Klaren sind, finden Sie hier einen kleinen Kontext:

  • Abhängigkeiten: Bibliotheken oder Module, die ein NPM sind Modul benötigt, um in der Produktion zu funktionieren.
  • Peer-Abhängigkeiten: Eine Peer-Abhängigkeit ist eine bestimmte Version oder ein Satz von Versionen einer Softwarebibliothek eines Drittanbieters, mit der ein Modul arbeiten soll.

Dieses Problem wird teilweise durch React v17 verursacht

Aufgrund der großen Anzahl von Modulen, die Da ich React v17 (oder in jüngerer Zeit React 18) nicht ausdrücklich als Peer-Abhängigkeit hinzugefügt habe, kommt es mittlerweile häufig vor, dass beim Ausführen von npm-Installationen in einer React-Anwendung der Version 17 der Fehler „Abhängigkeitsbaum konnte nicht aufgelöst werden“ auftritt.

Dieser Fehler wird immer dann ausgelöst, wenn ein Modul (oder eine seiner eigenen Abhängigkeiten) eine frühere Hauptversion von React als Peer-Abhängigkeit auflistet, ohne React v17 ausdrücklich als einzuschließen Na ja.

So überprüfen Sie Peer-Abhängigkeiten für ein bestimmtes Modul

NPM selbst listet keine Peer-Abhängigkeiten auf den Seiten eines bestimmten Moduls auf. Es gibt jedoch einen einfachen Workaround, um vor oder nach der Installation nach Peer-Deps zu suchen. Führen Sie einfach Folgendes aus:

npm info name-of-module peerDependencies

Dieser Befehl gibt den Namen jeder Peer-Abhängigkeit zusammen mit allen kompatiblen Versionen zurück.

Das obige ist der detaillierte Inhalt vonWas bewirkt „npm install --legacy-peer-deps' und wann wird es empfohlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn