It’s #FrontendFriday – NVM oder Volta?

31.03.2023

Die Verwaltung verschiedener Node.js-Versionen ist ein wichtiger Aspekt der Frontend-Entwicklung insbesondere dann, wenn parallel an unterschriedlichen Projekten gearbeitet wird.  Glücklicherweise gibt es zwei Paketmanager, die Entwicklern dabei helfen, dies zu tun: NVM und Volta.

 

NVM

NVM ist ein beliebter und vermutlich auch der bekannteste Paketmanager, welcher auf Linux, macOS und Windows genutzt werden kann. Entwickler können mit NVM verschiedene Versionen von Node.js installieren und zwischen ihnen wechseln. Vor 2 Jahren hatte wir hier bereits einen Beitrag von Werner Steinbinder zum Thema NVM. [2]

NVM bietet nicht nur die Möglichkeit Node-Versionen global zu verwalten, sondern auch auf Projektebene eine bestimmte Node-Version festzulegen. Mit „node -v > .nvmrc“ wird automatisch eine .nvmrc-Datei mit der aktuellen Node-Version erstellt und im Projektverzeichnis abgelegt. NVM erkennt dies und wechselt auf die entsprechende Version des Moduls. [1]

 

Volta

Volta hingegen ist ein relativ neuer Paketmanager, welcher mit Rust entwickelt wurde. Volta kann ebenfalls auf Linux, macOS und Windows installiert werden und bietet Entwicklern die Möglichkeit, Abhängigkeiten wie Node.js und NPM-Pakete auf ein Projekt zu beschränken, die vom Rest des Systems isoliert ist. Dies verhindert Konflikte mit anderen Projekten und stellt sicher, dass jedes Projekt in einer stabilen und konsistenten Umgebung ausgeführt wird. [3]

 

Hier ist ein Beispiel wie eine solche Definition innerhalb eines Angular-Projekts aussehen kann:
Innerhalb eines Angular Projekts wurden folgende Befehle ausgeführt:

volta pin node@14

volta pin npm@6.14.18

Anschließend wurde die Package.json wie folgt erweitert:

  "volta": {
    "node": "14.21.3",
    "npm": "6.14.18"
  }

Diese Versionen gelten nun ausschließlich für dieses Projekt.

NVM oder Volta?

Aus meiner Erfahrung heraus finde ich die Verwendung von Volta intuitiver. Ein Beispiel dafür ist, dass Volta automatisch die neu installierte Node-Version einsetzt, während bei NVM ein zusätzliches Kommando „nvm use“ erforderlich ist. Zudem gibt es Berichte, die darauf hinweisen, dass Volta das performantere Tool ist. Der Unterschied beträgt weniger als 2 Sekunden und ist vermutlich nur im direkten Vergleich bemerkbar. [4]

Beide Tools sind ausgezeichnet zur Verwaltung von Node.js-Versionen geeignet. Sie sind einfach zu installieren und bieten Entwicklern nützliche Tools zur Verbesserung ihrer Node.js-Entwicklungserfahrung. Obwohl die Unterschiede minimal sind, würde ich Volta aufgrund seiner intuitiveren Verwendung und des minimalen Leistungsvorteils empfehlen, es auszuprobieren.

 

Die Webfrontend-AG wünscht allen ein schönes Wochenende!

 

Quellen:

[1] NVM

[2] NVM – Blogbeitrag

[3] Volta

[4] Volta – NVM Performance

Zurück zur Übersicht

Kommentar verfassen

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

*Pflichtfelder

*