Skip to main content

Node.js-Versionen und npm-Registry-Quellen wie ein Profi verwalten

Artikel von

Juan Picado

Node How even quick async functions can block the Event Loop starve tumb

28. August 2019

0 Min. Lesezeit

Anknüpfend an unseren Anfang des Jahres veröffentlichten Leitfaden mit 10 Best Practices für npm-Sicherheit möchte ich näher darauf eingehen, wie Sie in Ihrer Entwicklungsumgebung einfacher zwischen verschiedenen Node.js-Versionen und npm-Registries wechseln können.

Node-Versionsmanager

Bei der Entwicklung von Node.js-Anwendungen müssen Sie möglicherweise mehrere Node.js-Versionen installieren, um Ihre täglichen Aufgaben zu erledigen. Das kann zum Beispiel nötig sein, wenn Sie einen Fehler in der Produktionsumgebung beheben oder zwischen Projekten wechseln müssen. Das jedes Mal manuell zu erledigen, kostet viel Zeit und Mühe – dabei geht es auch einfacher.

Der Node Version Manager (nvm) ist ein Tool, mit dem Sie zwischen verschiedenen Node.js-Versionen wechseln können. So sparen Sie Zeit, wenn Sie Fehler aus der Produktionsumgebung in Entwicklungsumgebungen reproduzieren.

Die Standardinstallation wird nur unter macOS und Linux unterstützt. Wenn Sie Windows verwenden, sehen Sie sich nvm-windows an – damit sollten Sie bestens zurechtkommen.

Mit der CLI können Sie beliebige Node.js-Versionen installieren, indem Sie Folgendes ausführen:


nvm install  8.9.4
nvm install node   # nvm install the latest release
nvm install --lts  # nvm install the latest LTS release

Das war einfach! Sehen wir uns nun einige typische Szenarien an, in denen NVM hilfreich ist:

  • Manchmal arbeiten Teammitglieder im selben Team mit unterschiedlichen Node.js-Versionen. Das ist jedoch ein häufiger Fehler, der zu Problemen führen kann – etwa wenn Sie Code zusammenführen, der von der Node.js-Version, die im restlichen Team verwendet wird, nicht unterstützt wird. Damit alle Teammitglieder dieselbe Version verwenden, kann das Team die Datei `.nvmrc` einführen. Zum Beispiel:

    $ echo "10" > ~/.nvmrc

    Nach der Installation wird beim Ausführen von nvm install immer standardmäßig die in dieser Datei angegebene Version verwendet. So wird verhindert, dass Teammitglieder mit einer anderen Version Beiträge leisten. Auf diese Weise vermeiden Sie beispielsweise, inkompatible Node.js-Funktionen auszuliefern oder Syntax zu verwenden, die Ihre App möglicherweise beeinträchtigt.

  • Müssen Sie einen Fehler mit einer älteren oder neueren Node.js-Version reproduzieren als der, die Sie installiert haben? Ohne NVM ist es wegen der manuellen Installation mühsam, mehrere global installierte npm-Versionen gleichzeitig zu verwenden. Mit NVM führen Sie einfach einen weiteren `install`-Befehl aus, um verschiedene Versionen parallel zu nutzen – und schon sind Sie startklar. Ein Beispiel:

Wenn Sie mehrere Node.js-Versionen installiert haben, von denen jede mehrere globale npm-Module nutzt, müssen Sie diese Module bei jedem Wechsel der Node.js-Version erneut installieren.

Hier ist eine schnelle Lösung:

$ nvm install 10 --reinstall-packages-from=8

npm-Registry-Manager

Der NPM Registry Manager ist ein weiteres nützliches Tool, wenn Sie mehrere Registries verwenden. Das kommt häufig in Unternehmen vor oder wenn Sie ein Tool wie verdaccio für eine private lokale Registry nutzen. Seit GitHub seine Package Registry eingeführt hat, ist das noch nützlicher und verbreiteter.

NRM unterstützt standardmäßig mehrere Registries, darunter:

$ nrm use cnpm

Weitere Tipps für mehr Produktivität und npm-Sicherheit finden Sie in unserem Spickzettel mit 10 Best Practices für npm-Sicherheit.

Bleiben Sie sicher!

Gepostet in:

Weiterlesen

Live Stream

Remediation-Agenten verständlich erklärt: Warum Beheben besser ist als Finden

Erfahren Sie, wie der Remediation Agent von Snyk Sicherheitsinformationen, Analysen zur Ausnutzbarkeit und Validierung nutzt, um Schwachstellen in zusammenführbare Pull Requests zu verwandeln.

feature insights context
Blog

Der keyv-npm-Angriff: Preinstall-Malware, vertrauenswürdige Provenance und IDE-Hooks

keyv 6.0.0 und zehn weitere npm-Releases enthielten Malware, die bei der Installation ausgeführt wird. Erfahren Sie, welche Versionen betroffen sind, welche Hashes gelten, wie Sie die Malware erkennen und in welcher Reihenfolge Sie sicher reagieren.

feature ai ide dark
Blog

Ein erster Einblick in Evo Agentic AppSec: Agentic Remediation und Schutz vor schädlichem Code

Entdecken Sie die ersten Agentic-AppSec-Funktionen von Snyk: einen autonomen Remediation Agent, der Sicherheitslücken behebt, und Malicious Code Defense, das riskante Pakete blockiert, bevor sie ausgeliefert werden.