Parallelisierung verschiedener Node.js Versionen mit NVM

29.01.2021

Ein Nachteil in der Arbeit mit Node.js ist, dass nur eine Version zur selben Zeit auf einem System installiert sein kann. Ältere Projekte benötigen eine ältere Version, wohin gegen neue Projekte mit einer aktuellen Version entwickelt werden.

Verschiedene Versionen werden auch benötigt, wenn man prüfen möchte, ob eine Anwendung abwärtskompatibel ist. Aus diesen und weiteren Gründen muss immer zwischen verschiedenen Versionen gewechselt werden.

Node.js

Quelle: Wiki

Node Version Manager – NVM

Für das oben genannte Problem gibt es bereits verschiedene GitHub Projekte, jedoch werden viele davon nicht mehr gepflegt (siehe: nodist oder nvmw ). Eine aktiv gepflegtes GitHub Projekt für Mac und Linux ist https://github.com/nvm-sh/nvm .

Für uns relevant ist jedoch ein Tool unter Windows, welches noch aktiv gepflegt wird. Dabei ist die Auswahl relativ gering. Ein Projekt, was sich hierzu noch anbietet, ist Node Version Manager for Windows: https://github.com/coreybutler/nvm-windows

Zur Installation des NVM müssen Adminrechte vorhanden sein. Auch für einige Befehle, wie beim installieren weiterer Node.js Versionen oder dem Wechseln zwischen den Versionen sind diese nötig.

Der Hintergrund, weshalb Administratorrechte benötigt werden, ist, dass Node.js einen Symlink bei der Installation einer neuen Node.js Version hinterlegt. Dieser wird unter anderem benötigt, um die CLI-Befehle mit Node.js zu ermöglichen. Bei einem Wechsel zwischen verschiedenen Versionen muss dieser Symlink angepasst werden. Das Ändern eines Symlinks ist jedoch nur mit Administratorrechten möglich.

 

Installation

Bei der Installation müssen einige Punkte beachtet werden:

  1. Bevor NVM installiert wird, müssen alle zuvor installieren Node.js Versionen deinstalliert werden, da es sonst zu Konflikten kommt.
  2. Herunterladen und ausführen des Installers: https://github.com/coreybutler/nvm-windows/releases
  3. Bei der Auswahl des Installationspfad darauf achten, dass die Anwendung NICHT unter dem Admin User Verzeichnis gespeichert wird („adm.<user>“). Ansonsten lässt sich Node.js nur noch über eine Admin Konsole ausführen. NVM Installation
  4. Nach der Installation muss unter dem Verzeichnis  C:\Users\<user>\ ein neuer Ordner mit dem Namen „nvm“ angelegt werden
  5. In diesem neuen Verzeichnis C:\Users\<user>\nvm muss nun eine txt Datei angelegt werden mit dem Namen „settings.txt“ und dessen Inhalt:

    root: C:\Users\<user>\AppData\Roaming\nvm
    path: C:\Program Files\nodejs
    arch: 64
    proxy: none

    Beschreibung der Parameter

    • root: This is the installation directory where the files were extracted (NVM_HOME).

    • path: This is the symlink directory defined in NVM_SYMLINK.

    • proxy: Set this to „none“. If you need to use a proxy, it can be modified using nvm from the command line.

    • arch: This should be 32 or 64 based on whether Windows is running as a 32-bit or 64-bit application.

    Weitere Infos dazu: https://github.com/coreybutler/nvm-windows/wiki#manual-installation

  6. Damit die Änderungen wirksam werden, muss der Rechner neu gestartet werden.

  7. Für die Verwendung des NVM muss ein Terminal Fenster mit Adminrechten gestartet werden
  8. Die nötigen Node.js Versionen installieren. Nach jeder Installation müssen globale utilities (z.B. yarn) noch mal installiert werden:

    z.B.:
    nvm install 11.15.0
    npm install -g yarn
    nvm install 14.15.4
    npm install -g yarn
  9. Wähle die gewünschte Node.js Version. Bei einem Wechsel zu einer anderen Version ist der Vorgang genau gleich

    z.B.:
    nvm use 14.15.4

Nun ist Node.js bereit und kann auch in einem Terminal Fenster ohne Adminrechte verwendet werden. Noch mal der Hinweis: Möchte man weitere Node.js Versionen installieren oder die Version wechseln, ist ein Terminalfenster mit Adminrechten nötig.

Fazit

Node.js Versionen sind etwas, woran selten gedacht wird, bis sie während der Entwicklung zu einem Problem führen. Wenn ihr eines der oben genannte Probleme habt, müsst ihr zwangsläufig zwischen verschiedenen Versionen wechseln. Mit dem Node Version Manager ist es relativ einfach, per Kommandozeile zwischen verschiedenen Version zu wechseln. Dadurch vereinfacht bzw. verbessert sich die Entwicklung und Workflow im Allgemeinen. 

 

Mehr über Softwareentwicklung erfahren

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*