Teilen Sie diesen Artikel:

Blog
Aug 07, 20235 min read

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.

ABONNIEREN SIE UNSEREN NEWSLETTER

Teilen Sie diesen Artikel:

ABONNIEREN SIE UNSEREN NEWSLETTER

Verwandte Blog-Artikel

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    Blog

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    <p>Start-ups zögern oft, mit Softwareagenturen zusammenzuarbeiten, weil sie Bedenken hinsichtlich Kosten, Kontrolle und Flexibilität haben. Entdecken Sie, wie die maßgeschneiderten Softwarelösungen von Bulcode jede Herausforderung meistern und für Wachstum und Flexibilität sorgen.</p>

    Geschrieben von Svetoslava Angelova
    Nov 05, 20246 min read
    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Blog

    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Erfahren Sie, wie wir leistungsstarke agile Teams aufbauen, indem wir klare Rollen definieren, die Zusammenarbeit fördern und flexible Tools einsetzen.

    Geschrieben von Svetoslava Angelova
    Aug 27, 20249 min read
    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Blog

    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Drupal 11 ist da! Entdecken Sie in diesem Artikel die spannenden Funktionen und Verbesserungen. Führen Sie jetzt ein Upgrade durch, um Ihre digitale Strategie mit dem Experten-Support von Bulcode neu zu definieren.

    Geschrieben von Svetoslava Angelova
    Aug 05, 20247 min read
    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Blog

    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Erfahren Sie, wie Single Directory Components (SDC) in Drupal Core den Entwicklungsprozess rationalisieren, indem komponentenbezogene Dateien in einem einzigen Verzeichnis gekapselt werden. Erfahren Sie mehr über die Vorteile von SDCs und folgen Sie einer Schritt-für-Schritt-Anleitung, um sie in Ihren Drupal-Projekten zu implementieren.

    Geschrieben von Nikolay Tsekov
    Aug 07, 20244 min read
    Tutorial zum Modul Config Ignore für Drupal

    Blog

    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 Tsandev
    Aug 08, 20237 min read
    Wie wir eine SSL-Gesamtbewertung von B auf A+ optimiert haben

    Blog

    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 Shahov
    Aug 07, 20232 min read
    Drupal-Versionen verstehen und eine Migrationsstrategie planen

    Blog

    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 Angelova
    Aug 08, 20234 min read
    Drupal 9 Bild in WebP-Format konvertieren

    Blog

    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 Boychev
    Aug 08, 20237 min read
    React im Überblick - Definition, SPA, Komponenten, Hooks

    Blog

    React im Überblick - Definition, SPA, Komponenten, Hooks

    React ist ein freies und quelloffenes JavaScript-Framework für die Erstellung von Benutzeroberflächen auf der Grundlage von UI-Komponenten. Es ist auch als React.js oder ReactJS bekannt.

    Geschrieben von Mihail Shahov
    Aug 07, 20236 min read
    Was ist Agile und warum verwenden wir es?

    Blog

    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 Angelova
    Aug 08, 20234 min read
    Welches Modell der IT-Verpflichtung passt am besten zu Ihnen?

    Blog

    Welches Modell der IT-Verpflichtung passt am besten zu Ihnen?

    Festpreis, Zeit und Material oder engagierte Teams? Wägen Sie sorgfältig alle Vor- und Nachteile des Auftragsmodells für Ihr Projekt ab.

    Geschrieben von Svetoslava Angelova
    Aug 07, 202310 min read
    Die Websites der Flughäfen Varna und Burgas verwenden React-Komponenten in Drupal

    Blog

    Die Websites der Flughäfen Varna und Burgas verwenden React-Komponenten in Drupal

    Drupal ist ein modulares System, dessen Funktionen an viele verschiedene Anforderungen angepasst werden können, was für Projekte der öffentlichen Verwaltung besonders wichtig ist.

    Geschrieben von Mihail Shahov
    Aug 08, 20234 min read

    KONTAKT AUFNEHMEN

    Sie haben ein Projekt, das Sie gerne starten würden?