Node.js und NPM-Versionierung mit NVM

Unsere vorherige Übersetzung über die neuen Funktionen der 15. Version von Node.js wurde von den Lesern von Habr sehr gut aufgenommen. Daher haben wir uns heute entschlossen, das Thema fortzusetzen und Ihnen zu erklären, wie Sie NVM mit Version 15 von Node.js und NPM 7 konfigurieren .


Node.js Version 15 wurde am 20. Oktober 2020 veröffentlicht. Es wird mit npm 7 und vielen neuen Funktionen ausgeliefert. Haben Sie die neue Version bereits ausprobiert?



Aber warte eine Minute! Node.js 15 und npm 7 enthalten wichtige Änderungen. Würde das Upgrade dann nicht bestehenden Projekten schaden?



Theoretisch kann es weh tun!







Glücklicherweise haben wir NVM (Node Version Manager), um uns vor dieser Gefahr zu schützen. Schauen wir uns dieses Tool genauer an, um die Versionen von node.js und npm problemlos zu aktualisieren.



Installieren Sie NVM



nvm



verwaltet die Versionen node.js und npm. Es wird für einen bestimmten Benutzer installiert und kann für jede Shell separat aufgerufen werden. nvm



funktioniert mit jeder POSIX-kompatiblen Shell (sh, dash, ksh, zsh, bash), einschließlich Plattformen: Unix, MacOS und Windows WSL.



nvm



kann mit den Befehlen curl oder wget installiert werden:



$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
      
      







Script install.sh



klont Repository NVM in ~/.nvm



und versucht , die Source - Leitungen aus dem folgende Fragmente in die gewünschten Profildatei (hinzuzufügen ~/.bash_profile



, ~/.zshrc



, ~/.profile



oder ~/.bashrc



).



export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
      
      





In können ~/.bash_profile



wir sehen, dass die Zeilen hinzugefügt werden:



export NVM_DIR="/Users/fuje/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
      
      





NVM verwenden



Also haben wir nvm installiert. Jetzt verwenden wir diesen Befehl, um die neueste Version von node.js zu installieren:



$ nvm install node
Downloading and installing node v15.4.0...
Downloading https://nodejs.org/dist/v15.4.0/node-v15.4.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v15.4.0 (npm v7.0.15)
      
      





Die Ausgabedaten des obigen Beispiels geben an, dass npm 7.0.15



mit node.js verwendet wird 15.4.0



. Lass uns das Prüfen:



$ node -v
v15.4.0
$ npm -v
7.0.15
      
      





Wir können auch die erforderliche Version für die Installation angeben. Das semantische Format der Version wird vom SemVer bestimmt :



$ nvm install 10.14.0
Downloading and installing node v10.14.0...
Downloading https://nodejs.org/dist/v10.14.0/node-v10.14.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v10.14.0 (npm v6.4.1)
      
      





Wenn die angegebene Version bereits installiert wurde, wird sie nicht neu installiert:



$ nvm install 10.14.0
v10.14.0 is already installed.
Now using node v10.14.0 (npm v6.4.1)
      
      





Wir können alle installierten Versionen anzeigen:



$ nvm ls
->     v10.14.0
       v10.15.0
       v10.16.0
       v12.16.0
        v13.9.0
        v15.4.0
         system
default -> 12.16.0 (-> v12.16.0)
node -> stable (-> v15.4.0) (default)
stable -> 15.4 (-> v15.4.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/fermium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.23.0 (-> N/A)
lts/erbium -> v12.20.0 (-> N/A)
lts/fermium -> v14.15.1 (-> N/A)
      
      





In den obigen Ausgabebeispielen zeigt das Symbol ->



an, dass die aktuelle Version von node.js ist 10.14.0



. Der Pfeil repräsentiert auch Werte für default



( 12.16.0



), node



( 15.4.0



) und stable



( 15.4.0



).



nvm use



ersetzt die aktuelle Version:



$ nvm use 12.16.0
Now using node v12.16.0 (npm v6.14.8)
$ nvm use 10.16.0
Now using node v10.16.0 (npm v6.14.5)
$ nvm use 13.9.0
Now using node v13.9.0 (npm v6.13.7)
$ nvm use default
Now using node v12.16.0 (npm v6.14.8)
$ nvm use node
Now using node v15.4.0 (npm v7.0.15)
$ nvm use stable
Now using node v15.4.0 (npm v7.0.15)
      
      





Sie fragen sich vielleicht, wie es ist, dass v10.16.0



eine spätere Version von npm als verwendet wird v13.9.0



. Diese Aufgabe kann mit den folgenden Befehlen gelöst werden:



$ nvm use 10.16.0
$ npm install -g npm@6.14.5
      
      





Mit diesem Befehl können Sie die neueste unterstützte npm-Version für die aktuelle Version von Node.js abrufen:



$ nvm install-latest-npm
      
      





nvm use



Installiert nur die richtige Version für die aktuelle Shell. Wenn Sie die Shell ändern, geht die neu aktualisierte Version von node.js verloren.



Wie mache ich eine bestimmte Version von Node.js dauerhaft?



Die Standardversion ist eine, die auf alle Shells verteilt wird.



Mit dem Befehl nvm alias



können Sie die Standardversion festlegen.



$ nvm alias default 10.16.0
      
      







Zur Vereinfachung können Sie eine Datei erstellen .nvmrc



, die das SemVer-Format akzeptiert, node



oder default



. Danach nvm use



, nvm install



, nvm exec



, nvm run



und nvm which



wird die Version in der Datei angegeben verwenden .nvmrc



, es sei denn , eine andere Befehlszeile.



$ cat .nvmrc
15.4.0
$ nvm use
Found '/Users/fuje/.nvmrc' with version <15.4.0>
Now using node v15.4.0 (npm v7.0.15)
      
      





Wir können die aktuelle Version mit dem folgenden Befehl überprüfen:



$ nvm current
v15.4.0
      
      





ls-remote



Zeigt alle verfügbaren Versionen an, aber seien Sie auf eine sehr lange Liste vorbereitet.



$ nvm ls-remote
      
      





Beachten Sie, dass der abgekürzte Versionsname die gesamte Liste erheblich verkürzt.



$ nvm ls-remote 15
        v15.0.0
        v15.0.1
        v15.1.0
        v15.2.0
        v15.2.1
        v15.3.0
->      v15.4.0
      
      





nvm which



Gibt den Pfad zu der ausführbaren Datei an, in der sie nvm



installiert wurde. Wir haben installierte Versionen von node.js wie 10.14.0



, 10.15.0



und 10.16.0



. Hier sind die Ergebnisse nvm which



:



$ nvm which 10.14.0
/Users/fuje/.nvm/versions/node/v10.14.0/bin/node
$ nvm which 10.15.0
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.16.0
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
$ nvm which 10.15
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.12
N/A: version "v10.12" is not yet installed.
You need to run "nvm install 10.12" to install it before using it.
$ nvm which 10
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
      
      





Die angegebene Version von Node.js kann direkt zum Starten von Anwendungen verwendet werden:



$ nvm run 10.15.0 app.js
      
      





Alternativ wird dieser Befehl node app.js



mit der Variablen PATH ausgeführt, die die Version angibt 10.15.0



.



$ nvm exec 10.15.0 node app.js
      
      





Wenn Sie weitere nvm-Befehle benötigen, führen Sie den folgenden Befehl aus help



:



$ nvm --help
      
      







NVM-Upgrade



Wir können nvm



node.js und npm zum Aktualisieren verwenden. Aber wie aktualisiere ich mich nvm



?



Lass es uns versuchen!



Vor dem Update haben wir installiert nvm



0.34.0



.



Wir aktualisieren auf Version 0.37.2.



$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13527  100 13527    0     0  23046      0 --:--:-- --:--:-- --:--:-- 23083
=> nvm is already installed in /Users/fuje/.nvm, trying to update using git
=> => Compressing and cleaning up git repository
=> nvm source string already in /Users/fuje/.bash_profile
=> bash_completion source string already in /Users/fuje/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
      
      





Wie in der Ausgabe angegeben, müssen wir das Terminal schließen und erneut öffnen, um die neue Version verwenden zu können:



$ nvm --version
0.37.2
      
      





Im Vergleich zur Version 0.34.0



hat die Version 0.37.2



eine Funktion nvm set-colors



zur Ausgabe an die Konsole hinzugefügt . Zeigt







standardmäßig nvm ls



die folgenden Farben an:







Neue Farben festlegen:



$ nvm set-colors cgYmW
      
      





nvm ls



zeigt die Ausgabe mit neuen Farben an:







Fazit



nvm



vereinfacht die Versionskontrolle von node.js und npm. Wir sind jetzt definitiv bereit, zu node.js 15 und npm 7 zu wechseln. Ich hoffe, Sie fanden dies hilfreich. Weitere Veröffentlichungen des Autors finden Sie hier .



All Articles