2023-08-07

NVM vs NPM vs Yarn

Ventsislav Venkov

Junior-Entwickler

NVM vs NPM vs Yarn

Im Vergleich zu den drei Technologien unterscheidet sich der NVM von den beiden anderen. Der Node Version Manager (NVM) wird zur Verwaltung von Node.js-Versionen verwendet. NPM und Yarn sind Node.js-Paketmanager. Sie ermöglichen das Herunterladen, Installieren und Verwalten von Paketen bei der Entwicklung in JavaScript.

Was ist NVM?

Wie Sie bereits wissen, ist NVM der Node Version Manager. Er ermöglicht den schnellen und bequemen Wechsel zwischen verschiedenen Knotenversionen zum Testen und Entwickeln einer Anwendung.

Warum NVM verwenden?

NVM ermöglicht den Benutzern:
  • Mit einem einzigen Befehl können Sie eine beliebige Long Term Support (LTS)-Version von Node.js lokal herunterladen.
  • Über die Kommandozeile können Sie schnell zwischen verschiedenen Node.js-Versionen wechseln.
  • Erstellen Sie Aliase, um einfach zwischen verschiedenen herunterladbaren Versionen von Node.js zu wechseln.

Verwendung von NVM

Wenn NVM installiert ist, können Sie jede Version von Node.js mit einem einfachen Befehl verwalten.

Hier werden alle installierten lokalen Versionen von Node aufgelistet:

nvm ls

Um eine bestimmte Version zu installieren, kann dieser Befehl verwendet werden:

nvm install <SPECIFIC_NODE_VERSION>

Um eine bestimmte Version von Node.js zu verwenden (oder zu wechseln), verwenden Sie den folgenden Befehl:

nvm verwenden <SPECIFIC_NODE_VERSION>

NPM vs. Garn

Node-Paketmanager (NPM)

NPM ist der standardmäßige Paketmanager für Node. Einfache Befehle werden unterstützt, da es sich um einen CLI-Installer (Command Line Interface) handelt. Es hat Pakete in JSON geschrieben und ist Open-Source und kostenlos. In einer package.json-Datei können die Abhängigkeiten Ihrer Node-Anwendung aufgelistet und gespeichert werden. Benutzer können auch Pakete weitergeben. Die primäre npm-Registry hat mehr als 1,3 Millionen Pakete. Die Automatisierung der Verwaltung von Abhängigkeiten und Paketen ist das Hauptziel von NPM. Unter Verwendung einer "package.json"-Datei kann npm alle Abhängigkeiten eines Projekts mit einem einzigen Befehl installieren, wenn es als Abhängigkeitsmanager für ein lokales Projekt verwendet wird.

Yarn (Noch ein Ressourcenvermittler)

Die neueste und verbesserte Version von NPM ist Garn. Als Ersatz für NPM wurde es von Facebook, Exponent, Google und Tilde im Jahr 2016 entwickelt. Es wurde entwickelt, um komplexe Funktionen anzubieten, die NPM fehlten. Um seine Nutzung zu stabilisieren, hat NPM einige wichtige Funktionen hinzugefügt. Yarn verwendet die gleichen Techniken wie NPM, verwaltet aber alle Installationsdaten intern, um die Kompatibilität zwischen den Plattformen zu gewährleisten. Außerdem ist es sicherer und stabiler als NPM.

Die Unterschiede

Yarn speichert alle installierten Pakete im Cache. Yarn installiert die Pakete gleichzeitig, weshalb Yarn schneller ist als NPM.

Beide laden Pakete aus dem npm-Repository herunter. Yarn erzeugt yarn.lock, um die Versionen der Abhängigkeiten des Pakets standardmäßig zu sperren.

Yarn führt im Hintergrund eine Sicherheitsüberprüfung durch, wenn es Pakete herunterlädt. Um zu verhindern, dass bösartige Skripte heruntergeladen werden und Abhängigkeitsprobleme verursachen, werden die Lizenzinformationen des Pakets herangezogen. Die Sicherheit war in den ersten Versionen von NPM ein großes Problem. Seit Version 6 führt NPM jedes Mal, wenn ein Paket installiert wird, eine Sicherheitsüberprüfung durch. Dadurch wird sichergestellt, dass es keine widersprüchlichen Abhängigkeiten gibt und Schwachstellen vermieden werden.

Es gibt zahlreiche grundlegende Ähnlichkeiten zwischen Yarn und NPM:

  • Automatisch erzeugte Sperrdateien
  • Unterstützung für die Verwendung von Workspaces
  • Unterstützung für die Verwendung entfernter Skripte - npx vs. yarn dlx
Jüngste Änderungen an NPM und Yarn

Sowohl Yarn als auch NPM werden ständig mit Fehlerkorrekturen und neuen Funktionen wie NPX und PnP aktualisiert.

NPX

Node Package Executor, abgekürzt NPX. Diese Funktion wurde mit NPM 5.2.0 und höher eingeführt. NPX erleichtert die Ausführung von einmaligen Anweisungen. Dank NPX können Pakete, die in der NPM-Registrierung aufgeführt sind, ausgeführt werden, ohne dass sie als Abhängigkeiten zu Ihrem Projekt hinzugefügt werden.

Um sich mit NPX vertraut zu machen, lesen Sie dieses Handbuch.

Garn2 (Beere)

Mit der Veröffentlichung von Yarn2, auch bekannt als Berry, hat Yarn seine Yarn-Linie erweitert. Plug'n'Play, Constraints, Offline-Installation, Null-Installation, Workspaces und Yarn Dlx sind nur einige der erstaunlichen neuen Funktionen in dieser Ausgabe von Yarn (das neue Yarn NPX).

Wenn Sie die in diesem Abschnitt beschriebenen Schritte korrekt ausgeführt haben, sehen Sie einen neuen Block in phpinfo().

Hier sind die wichtigsten Neuerungen:

Plug'n'Play ist eine alternative Methode der Einrichtung. Im Gegensatz zu Node.js, das ein Node-Module-Verzeichnis erstellt und die Auflösung selbst vornimmt, erzeugt Plug'n'Play nur eine pnp.js-Datei.

  • Eliminierung von Knotenmodulen.
  • Die Installationszeiten für Pakete konnten um bis zu 70 % reduziert werden.
  • Wenn Sie es versäumen, eine Abhängigkeit anzugeben, wird Plug'n'Play eine Warnung ausgeben.
  • Schnellerer Start von laufenden Projekten.

Wenn Sie mehr über Plug'n'Play erfahren möchten, lesen Sie dieses Handbuch.

Projektabhängigkeiten können mit Hilfe von Constraints verwaltet werden, die es Ihnen ermöglichen, allgemeine Regeln in Prologue (einer deklarativen Programmiersprache) zu deklarieren. Solange es in Ihrem Repository keine inkompatiblen Abhängigkeiten gibt, können Sie Regeln aufstellen, um diese durchzusetzen.

Modernisierte Workspaces - Sie können jetzt ein Mono-Repository einrichten, um die Abhängigkeiten zwischen mehreren Projekten zu kontrollieren. Dadurch ist es möglich, dass mehrere Projekte auf einander verweisen. Jede Änderung an einem Repository aktualisiert automatisch die anderen.

Die beiden Garne, Yarn1 und Yarn2, sind sehr ungleich. Lernen Sie mit Hilfe dieser praktischen Anleitung, wie Sie den Übergang von Garn1 zu Garn2 gestalten.

Zusammenfassend

Es gibt große Unterschiede zwischen NVM, NPM und Yarn.

  • Node.JS kann mit NVM eingerichtet werden.
  • NPM ist der beste Weg, um alle Pakete zu installieren, die Sie benötigen.
  • Yarn funktioniert wie NPM, ist aber schneller und stabiler bei der Installation und Auflistung
  • Abhängigkeiten für Ihre Node.JS-Anwendung.

Gemeinsam ist ihnen, dass sie alle von Node-Anwendungen verwendet werden.

Bei Bulcode sind wir es gewohnt, sowohl mit NPM als auch mit Yarn zu arbeiten, wobei wir in der Regel Yarn den Vorzug geben.

Tags:

Teilen Sie diesen Artikel:

Vielen Dank für Ihr Abonnement!

Abonnieren Sie unseren NewsLetter

    Drupal 9 Bild in WebP-Format konvertieren

    Drupal 9 Bild in WebP-Format konvertieren

    WebP ist in der Lage, die Datenkomprimierung auf ein neues Niveau zu heben, da es einen Vorhersagemodus in den JPG-Prozess einfügt, der die Leistung seines JPG-Verwandten deutlich übertrifft. Und wir haben die Ergebnisse, um dies zu beweisen.
    Geschrieben von Vasil Boychev2024-03-14
    Was ist Agile und warum verwenden wir es?

    Was ist Agile und warum verwenden wir es?

    Agile ist eine zeitlich begrenzte, iterative Methode zur Softwarebereitstellung, die darauf abzielt, die Software schrittweise während des Projekts bereitzustellen und nicht alles auf einmal gegen Ende.
    Geschrieben von Svetoslava Angelova2024-03-14
    Laravel Mix - ein einfacher und leistungsstarker Wrapper um Webpack

    Laravel Mix - ein einfacher und leistungsstarker Wrapper um Webpack

    Laravel Mix bietet eine fließende API für die Definition von Webpack-Build-Schritten für Ihre Laravel-Anwendung unter Verwendung mehrerer gängiger CSS- und JavaScript-Präprozessoren.
    Geschrieben von Stefani Tashkova2024-03-14
    Die Bedeutung des richtigen Entwicklungspartners im Lebenszyklus Ihrer Softwareentwicklung

    Die Bedeutung des richtigen Entwicklungspartners im Lebenszyklus Ihrer Softwareentwicklung

    Den Erfolg freischalten: Die Kunst der Auswahl des perfekten Softwareentwicklungspartners. Erforschen Sie die zentrale Rolle von Partnern in der Softwareentwicklung, decken Sie ROI-Geheimnisse auf und bleiben Sie den Branchentrends einen Schritt voraus in diesem lesenswerten Artikel.
    Geschrieben von Mihail Shahov2024-03-14
    Drupal-Versionen verstehen und eine Migrationsstrategie planen

    Drupal-Versionen verstehen und eine Migrationsstrategie planen

    Erkennen Sie die verschiedenen Drupal-Versionen und halten Sie Ihre Website auf dem neuesten Stand.
    Geschrieben von Svetoslava Angelova2024-03-14
    Tutorial zum Modul Config Ignore für Drupal

    Tutorial zum Modul Config Ignore für Drupal

    Manchmal wollen wir nicht, dass unsere Konfigurationen in der Codebasis freigegeben werden. Was können wir also in solchen Fällen tun?
    Geschrieben von Ivaylo Tsandev2024-03-13
    Enthüllung des Power-Duos: Next.js als Headless-Frontend von Drupal 10

    Enthüllung des Power-Duos: Next.js als Headless-Frontend von Drupal 10

    Entdecken Sie die dynamische Synergie zwischen Drupal 10 und Next.js, da diese leistungsstarke Kombination die Landschaft der Webentwicklung neu gestaltet. Next.js, ein Open-Source-Framework auf React-Basis, ist nahtlos als Headless-Frontend in Drupal 10 integriert und bietet eine Fülle von Vorteilen. Von verbesserter Leistung mit Funktionen wie automatischer Codeaufteilung und serverseitigem Rendering bis hin zu flexiblem Design und SEO-freundlichen Funktionen ermöglicht diese Zusammenarbeit Entwicklern die Erstellung leistungsstarker, skalierbarer und visuell ansprechender Webanwendungen. Die effiziente Inhaltsverwaltung von Drupal 10 in Verbindung mit der Anpassungsfähigkeit von Next.js an Trends gewährleistet einen innovativen Entwicklungsansatz und positioniert dieses Tandem an der Spitze der modernen Webentwicklungspraktiken. Umarmen Sie die Zukunft mit der Kombination aus Drupal 10 und Next.js und definieren Sie neu, wie wir dynamische Online-Erlebnisse angehen und gestalten.
    Geschrieben von Todor Kolev2024-03-13
    Rollen in Scrum

    Rollen in Scrum

    Scrum-Rollen und wie Sie sie in Ihre Organisation integrieren können.
    Geschrieben von Svetoslava Angelova2024-03-13
    SCRUM-EVENTS

    SCRUM-EVENTS

    Scrum definiert mehrere Ereignisse (manchmal auch Zeremonien genannt), die in jedem Sprint stattfinden: Sprint Planning, Daily Scrum, Sprint Review und Sprint Retrospective.
    Geschrieben von Svetoslava Angelova2024-03-13
    Kopfloses Drupal mit Next.js - einfaches Beispiel für einen Durchgang

    Kopfloses Drupal mit Next.js - einfaches Beispiel für einen Durchgang

    Der Trend in letzter Zeit, in der Web-Entwicklung im Allgemeinen, und folglich in der Drupal-Entwicklung ist die Verwendung der Technologie headless. Der Trend in letzter Zeit, in der Web-Entwicklung im Allgemeinen, und folglich in Drupal-Entwicklung ist die Technologie zu verwenden, headless.
    Geschrieben von Mihail Shahov2024-03-13
    Engagierte Softwareentwickler (Teams) anstellen

    Engagierte Softwareentwickler (Teams) anstellen

    Sind Sie es leid, die Kosten für Ihr internes Entwicklungsteam zu erhöhen? Warum holen Sie sich nicht ein engagiertes Team zu 40 % bis 60 % der Kosten?
    Geschrieben von Mihail Shahov2024-03-13
    Wie wir eine SSL-Gesamtbewertung von B auf A+ optimiert haben

    Wie wir eine SSL-Gesamtbewertung von B auf A+ optimiert haben

    Die Optimierung der SSL-Implementierung ermöglicht es allen Kunden, die Website sicher und ohne Warnungen zu öffnen und zu durchsuchen.
    Geschrieben von Mihail Shahov2024-03-13

    Wenn Sie Hilfe bei der Durchführung eines Projekts mit diesen Technologien benötigen, zögern Sie nicht, uns zu kontaktieren;

    Datenschutz-Einstellungen