wake-up-neo.com

Warum sollte ich npm nicht verwenden, um Garn zu installieren?

In dem Blog-Beitrag, in dem Garn angekündigt wird (ein alternativer npm-Client) heißt es: "Der einfachste Weg, um anzufangen, ist, npm install -g yarn Auszuführen." Wenn Sie jedoch zu die Seite "Garn installieren" in den zugehörigen Dokumenten wechseln, wird "npm install yarn" auf keiner der plattformspezifischen Installationsseiten aufgeführt und nur als dritte von drei angeboten Optionen auf der Seite "Alternativen". Wenn Sie npm install Garnieren, wird die Warnung "Es wird empfohlen, Yarn mit der für Ihre Umgebung typischen Installationsmethode zu installieren." Ausgegeben. Meine Frage ist also, ob npm install Die einfachste Installationsmethode ist. Warum wird sie in ihren Dokumenten nicht empfohlen? Gibt es Nachteile bei der Installation von Garn mit npm?

58
chrisarnesen

Laut den Betreuern des Yarn-Projekts kann die Installation von Yarn über npm widerspricht den Zielen des Projekts Probleme verursachen und ist im Allgemeinen schlechter als plattformspezifische Installationsmethoden.


Vorteile gegenüber der empfohlenen plattformspezifischen Installation:

  • Die Yarn-Teams halten npm für unsicher und unzuverlässig. Aus dem Abschnitt "Über Npm installieren" auf Yarn's Seite "Installation" :

    Hinweis: Die Installation von Garn über npm wird im Allgemeinen nicht empfohlen. Die Installation von Yarn mit npm ist nicht deterministisch, das Paket ist nicht signiert, und die einzige durchgeführte Integritätsprüfung ist ein grundlegender SHA1-Hash, der ein Sicherheitsrisiko darstellt, wenn systemweite Apps installiert werden.

    Aus diesen Gründen wird dringend empfohlen, Yarn mit der für Ihr Betriebssystem am besten geeigneten Installationsmethode zu installieren.

  • Das Ausführen von Yarn, einem separaten Paketmanager-Dienstprogramm, über npm kann zu Randproblemen führen (siehe issue 2072 ).

  • Durch die Installation über einen Systempaket-Manager wird Yarn von npm entkoppelt, sodass Sie Yarn ohne npm ausführen können
  • Der Systempaket-Manager wird normalerweise regelmäßig ausgeführt und hält Yarn auf dem neuesten Stand
  • Die Installation von Yarn via npm ist langsam

Vorteile für npm install -g yarn:

  • Schnell und einfach (npm install -g yarn)
  • Kann in jeder npm-Umgebung durchgeführt werden (plattformunabhängig)
  • Vertrautes Paradigma und Verfahren für Node.js-Entwickler
  • Kann leicht aktualisiert werden (npm update -g yarn)
    • Ein Garn-Aktualisierungsbefehl ist vorhanden (yarn self-update) aber es scheint kaputt zu sein
  • Keine Abhängigkeit von Systempaketmanagern
  • Kann verschiedene Versionen von Yarn für verschiedene Projekte oder verschiedene Versionen von Node.js über nvm verwenden

Die Argumente des Systempaket-Managers für die empfohlene Installation stören sich in der Regel, wenn Sie auf Windows verweisen, wo es keinen offiziellen Paket-Manager gibt (es sei denn, Sie zählen Windows Update). Außerdem sind Windows-Paketmanager wie Chocolatey häufig nicht für automatische Updates konfiguriert.

Ich bin mir nicht sicher, ob ich der Entscheidung des Yarn-Teams in dieser Hinsicht vollkommen zustimme, aber sie machen einige faire Punkte. Das Yarn-Projekt ist noch jung und wenn es ein Ersatz für npm werden soll, ist es nicht sinnvoll, npm als Hauptinstallateur zu fördern.

Unabhängig davon scheinen Installationen über npm in den meisten Fällen vorerst einwandfrei zu funktionieren.


Quellen:

63
Mike Hill

Es gibt keinen sichtbaren Nachteil bei der Installation von Yarn durch npm. Tatsächlich habe ich mich aus folgenden Gründen für diese Methode entschieden:

  1. Dies ist eindeutig der einfachste Weg. npm i --global yarn und Sie können npm buchstäblich durch yarn auf Ihrer Konsole sofort ersetzen.
  2. Wenn Sie nvm verwenden und unterschiedliche Code-Projekte für jede NodeJS-Version verwalten, können Sie Yarn auf einer Version installieren und nicht auf der anderen
  3. Ehrlich gesagt, der einzige Grund, warum ich daran denken kann, dass es in den plattformspezifischen Installationen nicht erwähnt wird, ist, dass npm plattformunabhängig ist
18
nikjohn

Da npm nicht plattformspezifisch ist und auf fast jedem System ausgeführt wird, wird es als Alternative aufgeführt. Es gibt keinen Vorteil oder Nachteil gegenüber den plattformspezifischen Installationen. Der Unterschied wäre der Installationsort, aber alle Methoden machen den globalen Befehl yarn für Ihre CLI verfügbar.

Ich würde argumentieren, dass sie es als "der einfachste Weg" verzeichneten, weil die meisten Leute bereits sehr vertraut mit npm sind.

7
Mario Tacke