GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Garn vs NPM:Ein umfassender Vergleich

Einführung

Yarn und NPM sind zwei der beliebtesten Node.js-Paketmanager. Sie ermöglichen das Herunterladen, Installieren und Verwalten von Paketen bei der Entwicklung in JavaScript.

In diesem Tutorial vergleichen wir Yarn und NPM, betrachten ihre Leistung, Benutzerfreundlichkeit, Sicherheit und die Funktionen, die sie bieten.

Garn vs. NPM:Definitionen

Yarn (noch ein weiterer Ressourcenverhandler) und NPM (Node Package Manager) sind Paketmanager, die für die JavaScript-Codierung verwendet werden. Sie arbeiten mit Node.js , das Benutzern dabei hilft, JavaScript-Code außerhalb eines Webbrowsers zu entwickeln und auszuführen.

Node.js verwendet eine große Anzahl von Open-Source-Paketen und -Bibliotheken, um das Codieren einfacher und effizienter zu gestalten. Paketmanager wie Yarn und NPM ermöglichen Benutzern das einfache Installieren, Verwalten, Aktualisieren und Entfernen von Paketen, Bibliotheken und Abhängigkeiten.

Was ist Garn?

Facebook hat Yarn 2016 als Ersatz für NPM entwickelt. Es wurde entwickelt, um fortschrittlichere Funktionen anzubieten, die NPM damals fehlten (z. B. Versionssperre), und ein sichereres, stabileres und effizienteres Produkt zu schaffen.

Seit der Veröffentlichung von Yarn hat NPM jedoch einige wichtige Funktionen hinzugefügt. In seiner jetzigen Form ist Yarn eher eine Alternative als ein Ersatz für NPM.

Was ist NPM?

NPM ist der standardmäßige Paketmanager für Node.js mit einem CLI-Tool, das beim Installieren, Verwalten und Entfernen von Node.js-Paketen hilft. Es ermöglicht Benutzern auch, Open-Source-Node.js-Pakete zu teilen.

Garn vs. NPM:Vergleich

Nachfolgend finden Sie eine Übersicht über einige der Ähnlichkeiten und Unterschiede zwischen Garn und NPM.

Installation

Wir beginnen mit einem Vergleich des Installationsprozesses für Yarn und NPM:

Garn

Um Yarn zu verwenden, müssen Sie es mit dem MSI-Installationsprogramm von der offiziellen Website oder einem Paketmanager wie Chocolatey, Scoop CLI oder NPM selbst installieren. Weitere Informationen finden Sie in unserem Leitfaden zur Installation von Yarn unter Windows und zur Installation von Yarn unter Ubuntu 18.04.

NPM

NPM ist standardmäßig in der Node.js-Installation enthalten und erfordert keine zusätzlichen Installationsschritte. Um mehr über die Installation von Node.js und NPM zu erfahren, werfen Sie einen Blick auf eine unserer Anleitungen:

  • So installieren Sie Node.js und NPM unter Ubuntu 18.04 und 20.04
  • So installieren Sie Node.js und NPM unter CentOS 7
  • So installieren Sie Node.js und NPM unter Windows
  • So installieren Sie Node.js und NPM auf einem Mac

Abhängigkeiten

Garn

Yarn Version 1 und NPM verwalten beide Abhängigkeiten auf sehr ähnliche Weise. Beide speichern Projektmetadaten in package.json Datei, die sich in node_modules befindet Ordner innerhalb des Projektverzeichnisses.

Ab Version 2 verwendet Yarn die node_modules nicht mehr Ordner zum Nachverfolgen von Abhängigkeiten. Stattdessen verwendet Yarn 2.0 das Plug'n'Play Funktion, die eine einzelne .pnp.cjs generiert Datei. Diese Datei enthält eine Abbildung der Abhängigkeitshierarchie für ein Projekt.

Garn verwendet das yarn Befehl zum Installieren von Abhängigkeiten. Es installiert Abhängigkeiten parallel, sodass Sie mehrere Dateien gleichzeitig hinzufügen können.

Beim Installieren von Abhängigkeiten wird automatisch eine Sperrdatei erstellt, die die genaue Liste der für das Projekt verwendeten Abhängigkeiten speichert. Bei Yarn heißt diese Datei yarn.lock .

NPM

NPM installiert Abhängigkeiten mithilfe von npm install Befehl. Die Abhängigkeiten werden nacheinander installiert.

NPM erstellt auch eine Versionssperrdatei mit dem Namen package-lock.json . Yarn unterstützt auch package-lock.json Dateien, wodurch Benutzer Versionsdaten von NPM zu Yarn migrieren können.

Geschwindigkeit und Leistung

Wie oben erwähnt, installiert NPM Abhängigkeitspakete sequentiell, während Yarn parallel installiert wird. Aus diesem Grund ist Yarn bei der Installation größerer Dateien schneller als NPM.

Beide Tools bieten auch die Möglichkeit, Abhängigkeitsdateien im Offline-Cache zu speichern. Dadurch können Benutzer Abhängigkeiten installieren, auch wenn sie offline sind.

Außerdem verwendet Yarn ab Version 2 die Zero-Installation Merkmal. Diese Funktion übernimmt die Abhängigkeitskarte aus .pnp.cjs -Datei und verwendet sie, um eine Offline-Abhängigkeitsinstallation praktisch ohne Verzögerungen durchzuführen.

Sicherheit

Garn

Yarn führt beim Herunterladen von Paketen eine Sicherheitsprüfung als Hintergrundprozess durch. Es verwendet die Paketlizenzinformationen, um sicherzustellen, dass es keine schädlichen Skripts herunterlädt oder Abhängigkeitskonflikte verursacht.

Beide Tools verwenden Verschlüsselungsprotokolle, um eine sichere Datenübertragung zu gewährleisten. Yarn verifiziert Pakete mit einer Prüfsumme, während NPM SHA-512 (Secure Hash Algorithm) verwendet, das in package-lock.json gespeichert ist Datei.

NPM

Sicherheitsbedrohungen waren in frühen Versionen von NPM ein erhebliches Problem. Ab Version 6 führt NPM jedes Mal, wenn Sie ein Paket installieren, eine Sicherheitsprüfung durch. Dies hilft Schwachstellen zu vermeiden und stellt sicher, dass keine widersprüchlichen Abhängigkeiten bestehen.

Sie können auch ein manuelles Audit ausführen, indem Sie das npm audit verwenden Befehl. Wenn NPM Schwachstellen findet, verwenden Sie npm audit fix sollte die Probleme lösen.

Benutzerfreundlichkeit

Sowohl Yarn als auch NPM sind relativ einfach zu bedienen, insbesondere wenn man bedenkt, dass sie mehrere Befehle gemeinsam nutzen. Die Befehlsausgabe ist im Allgemeinen einfach zu lesen und zu verstehen, obwohl sie visuell weniger unterscheidbar sein kann, wenn eine große Anzahl von Paketen installiert wird.

Beide Paketmanager bieten einen interaktiven Modus, der Benutzern hilft, neue Projekte einzurichten. In Yarn ist dieser Modus standardmäßig aktiviert, während NPM das npm-upgrade erfordert Paket, um Interaktivität zu ermöglichen.

Funktionen

Garn und NPM haben mehrere Hauptmerkmale gemeinsam:

  • Erzeuge Sperrdateien: Beide Paketmanager erstellen automatisch eine Versionssperrdatei. Bei Yarn heißt diese Datei yarn.lock , während NPM die Datei package-lock.json benennt .
  • Arbeitsbereiche verwenden: Sowohl Yarn als auch NPM unterstützen Arbeitsbereiche, sodass Sie ein einziges Repository verwenden können, um Abhängigkeiten für mehrere Projekte zu verwalten.
  • Remote-Skripte: Sowohl NPM als auch Yarn ermöglichen die Remote-Ausführung von Skripts mithilfe von npx Befehl in NPM und dem yarn dlx Befehl in Garn.

Funktionen sind exklusiv für Yarn:

  • Plug'n'Play: Anstatt die node_modules zu verwenden -Ordner generiert Yarn eine einzelne .pnp.cjs Datei, die Projektabhängigkeiten abbildet. Dies ermöglicht optimiertere Abhängigkeitsbäume und einen schnelleren Projektstart und eine schnellere Paketinstallation.
  • Keine Installationen: Diese Funktion knüpft an Plug'n'Play an , unter Verwendung der .pnp.cjs Datei zum Zuordnen von Paketen, die im Offline-Cache gespeichert sind. Dadurch können Sie fast ohne Verzögerung auf gespeicherte Pakete zugreifen und diese installieren.
  • Lizenzprüfung: Yarn verfügt über eine integrierte Lizenzprüfung beim Herunterladen und Installieren von Paketen.

Befehle

Die folgende Tabelle gibt einen Überblick über einige der am häufigsten verwendeten Befehle für NPM und Yarn:

Befehl NPM Garn
Ein Projekt initialisieren npm init yarn init
Tests für das aktuelle Paket ausführen npm test yarn test
Nach veralteten Paketen suchen npm outdated yarn outdated
Veröffentlichen Sie ein Paket npm publish yarn publish
Führen Sie ein Skript aus npm run yarn run
Lokalen Paket-Cache verwalten npm cache clean yarn cache clean
An- oder abmelden npm login/logout yarn login/logout
Installieren Sie Abhängigkeiten npm install yarn
Pakete installieren npm install [package name] yarn add [package name]
Pakete deinstallieren npm uninstall [package name] yarn remove [package name]
Update-Manager npm update yarn upgrade
Pakete aktualisieren npm update [package name] yarn upgrade [package name]
Pakete global installieren npm install --global [package name] yarn global add [package name]
Pakete global deinstallieren npm uninstall --global [package name] yarn global remove [package name]
Interaktives Abhängigkeitsupdate npm run upgrade-interactive yarn upgrade-interactive
Paket remote ausführen yarn dlx
Lizenzen prüfen yarn licenses ls

Garn vs. NPM:So wählen Sie aus

Es ist wichtig, die Vor- und Nachteile sowohl von NPM als auch von Yarn zu berücksichtigen, wenn Sie sich entscheiden, welches Sie verwenden möchten.

Garn

Vorteile

  • Unterstützt parallele Installationen und Zero-Installationen, die beide die Leistung erheblich steigern.
  • Neuere Versionen von Yarn bieten eine sicherere Form der Versionssperre.
  • Aktive Benutzergemeinschaft.

Nachteile

  • Yarn funktioniert nicht mit Node.js-Versionen, die älter als Version 5 sind.
  • Yarn hat beim Versuch, native Module zu installieren, Probleme gezeigt.

NPM

Vorteile

  • Einfach zu verwenden, besonders für Entwickler, die an den Arbeitsablauf älterer Versionen gewöhnt sind.
  • Die lokale Paketinstallation ist optimiert, um Festplattenspeicherplatz zu sparen.
  • Die einfache Benutzeroberfläche hilft, die Entwicklungszeit zu verkürzen.

Nachteile

  • Die Online-NPM-Registrierung kann bei Leistungsproblemen unzuverlässig werden. Das bedeutet auch, dass NPM Netzwerkzugriff benötigt, um Pakete aus der Registrierung zu installieren.
  • Trotz einer Reihe von Verbesserungen in verschiedenen Versionen gibt es immer noch Sicherheitslücken bei der Installation von Paketen.
  • Die Befehlsausgabe kann schwer lesbar sein.

Urteil

In Anbetracht all dessen ist NPM besser für Entwickler geeignet, die daran gewöhnt und mit dem aktuellen Workflow zufrieden sind. Es bietet eine einigermaßen effiziente Benutzererfahrung und spart gleichzeitig Festplattenspeicher.

Auf der anderen Seite bietet Yarn erweiterte Funktionen wie Plug'n'Play und Zero-Installationen. Es bietet auch eine etwas bessere Leistung und Sicherheit, jedoch auf Kosten des Festplattenspeichers.


Ubuntu
  1. So installieren Sie Yarn unter Ubuntu 18.04

  2. Wie installiere ich Yarn unter Ubuntu 20.04?

  3. Installieren Sie npm auf Ubuntu 16.04

  4. So installieren Sie den Yarn NPM Package Manager unter Oracle Linux 8

  5. Datumsvergleich in Bash

So installieren Sie den Yarn NPM Package Manager unter Ubuntu 20.04

So installieren Sie Pakete sicher mit Npm oder Yarn unter Linux

So installieren Sie den Yarn NPM-Client unter Ubuntu und verwalten Abhängigkeiten damit

So installieren Sie Garn unter Ubuntu 20.04

So installieren Sie Yarn unter Ubuntu 22.04

AppArmor vs. SELinux:Umfassender Vergleich