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
    SCRUM-EVENTS

    Blog

    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 Angelova
    Aug 07, 20233 min read
    Scrum-Artefakte

    Blog

    Scrum-Artefakte

    In der Softwareentwicklung bezieht sich der Begriff "Artefakt" auf Informationen, die Stakeholder und das Scrum-Team verwenden, um ein in der Entwicklung befindliches Produkt zu beschreiben.

    Geschrieben von Svetoslava Angelova
    Aug 07, 20232 min read
    Kopfloses Drupal mit Next.js - einfaches Beispiel für einen Durchgang

    Blog

    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 Shahov
    Aug 07, 20237 min read
    Engagierte Softwareentwickler (Teams) anstellen

    Blog

    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 Shahov
    Aug 07, 20233 min read
    Die Bedeutung des richtigen Entwicklungspartners im Lebenszyklus Ihrer Softwareentwicklung

    Blog

    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 Shahov
    Sep 26, 20239 min read
    Tutorial zum Modul Config Split für Drupal

    Blog

    Tutorial zum Modul Config Split für Drupal

    Sehr oft müssen wir als Entwickler mit verschiedenen Umgebungen arbeiten. Das kann manchmal zu (un)erwarteten Problemen führen. In Drupal 8 verwenden wir das Konfigurationssystem, das ziemlich gut funktioniert, aber es gibt Fälle, in denen die Einstellungen für die lokale und eine andere Umgebung unterschiedlich sein sollten.

    Geschrieben von Ivaylo Tsandev
    Aug 08, 20237 min read
    Enthüllung des Power-Duos: Next.js als Headless-Frontend von Drupal 10

    Blog

    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 Kolev
    Feb 09, 20245 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

    KONTAKT AUFNEHMEN

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