update-nvm

Jeden installierten Node-Major über nvm aktualisieren, globale npm-Pakete auffrischen, npm upgraden und corepack aktivieren.
Linux v1.2.1 nvm Node.js

Installation

mkdir -p ~/.local/bin
curl -fsSL https://omid.dev/scripts/update-nvm.sh -o ~/.local/bin/update-nvm
chmod +x ~/.local/bin/update-nvm

Vielleicht läufst du täglich pacman -Syu — aber wann hast du zuletzt jeden Node-Major in nvm aktualisiert?

update-nvm geht die bereits installierten Majors durch (oder die, die du explizit angibst), installiert den neuesten Patch, frischt globale npm-Pakete auf, upgraded npm mit --latest-npm (Standard: an) und führt corepack enable aus. Liegt ein Major schon auf dem neuesten Patch, bleibt Node unberührt, Globals werden trotzdem aktualisiert — außer mit --skip-npm.

Installation

1
2
3
mkdir -p ~/.local/bin
curl -fsSL https://omid.dev/scripts/update-nvm.sh -o ~/.local/bin/update-nvm
chmod +x ~/.local/bin/update-nvm

Benötigt nvm und curl. ~/.local/bin sollte in deinem PATH liegen.

Quellcode: static/scripts/update-nvm.sh.

Schnellstart

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
update-nvm              # alle bereits installierten Majors
update-nvm --lts        # nur lts/*
update-nvm 24           # ein Major
update-nvm 28           # neuen Major installieren (fragt nach Globals-Kopie)
update-nvm --npm-only   # nur npm und Globals, Node unberührt
update-nvm --prune      # ältere Patches derselben Major-Linie entfernen
update-nvm --self-update  # nur das Skript ersetzen
update-nvm --version
update-nvm -q --lts
update-nvm --dry-run

Ablauf

  1. Ziel-Majors bestimmen (installiert, --lts oder explizit).
  2. Pro Major den neuesten Release via nvm installieren, sofern nicht schon aktuell (oder --force / --npm-only).
  3. Ohne --skip-npm globale npm-Pakete auffrischen.
  4. Ohne --no-latest-npm npm auf die neueste von Node unterstützte Version bringen.
  5. Ohne --no-corepack corepack enable ausführen.
  6. Mit --prune ältere Patches derselben Major-Linie entfernen.

Fehlt ein Major noch, fragt das Skript, ob Globals von einem anderen Major kopiert werden sollen. Enter = frische Installation. Für nicht-interaktive Installationen: NVM_REINSTALL_FROM.

Befehle und Optionen

OptionBeschreibung
(ohne Args)Alle installierten Majors
VERSION …Angegebene Majors aktualisieren oder installieren
--ltsNur lts/*
--force, -fNeu installieren, auch wenn der Patch aktuell ist
--pruneÄltere Patches innerhalb jeder Major-Linie entfernen
--latest-npmnpm upgraden (Standard: an)
--no-latest-npmMit Node geliefertes npm behalten
--no-corepackcorepack enable überspringen
--skip-npmNur Node; keine Globals
--npm-onlyNur npm und Globals
--quiet, -qWenig Ausgabe; keine Installationsfragen
--dry-run, -nNur anzeigen, nichts ändern
--self-updateSkript von omid.dev aktualisieren
--versionSkriptversion ausgeben
-h, --helpHilfe

Umgebungsvariablen

VariableBeschreibung
NVM_DIRnvm-Verzeichnis (Standard: ~/.nvm)
NVM_UPDATE_VERSIONSLeerzeichengetrennte Versionen (ignoriert mit --lts)
NVM_REINSTALL_FROMBei nicht-interaktiver Neuinstallation Globals von diesem Major kopieren
UPDATE_NVM_SCRIPT_URLAlternative URL für --self-update
UPDATE_NVM_SKIP_SELF_CHECKMit 1 Prüfung auf neuere Skriptversion überspringen

Cron-Beispiel

0 3 * * 0 ~/.local/bin/update-nvm -q --lts --prune

Self-Update

1
update-nvm --self-update

Verwandt

Suche