Przejdź do głównej zawartości

Instalacja różnych wersji nodejs przez nvm.

NVM, czyli Node Version Manager, umożliwia łatwą instalację i zarządzanie różnymi wersjami Node.js na jednym systemie. Dzięki NVM możesz łatwo przełączać się między różnymi wersjami Node.js, co jest przydatne przy pracy nad różnymi projektami wymagającymi różnych wersji tego środowiska. NVM ułatwia także aktualizację i usuwanie wersji Node.js, co jest wygodne przy utrzymaniu elastyczności w środowisku deweloperskim.

Jak zainstalować NVM na serwerze?

Zaloguj się do swojego serwera poprzez konsolę SSH.

wskazówka

Logowanie do SSH. Jeśli nie wiesz jak to zrobić sprawdź Logowanie do SSH (Hosting VPS) lub Logowanie do SSH (VPS).

Sprawdźmy czy obecnie mamy nodeJS, czy mamy nvm ... a jeśli nie, to zainstalujmy:

[adam@adamhitme ~]$ node -v
bash: node: command not found
[adam@adamhitme ~]$

[adam@adamhitme ~]$ nvm -v
bash: nvm: command not found
[adam@adamhitme ~]$

Pobierz skrypt instalacyjny nvm i wykonaj poleceniem:

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Wynik
[adam@adamhitme ~]$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
=> Downloading nvm as script to '/home/adam/.nvm'

=> Appending nvm source string to /home/adam/.bashrc
=> Appending bash_completion source string to /home/adam/.bashrc
=> 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
[adam@adamhitme ~]$

Teraz, przeładuj terminal poleceniem: source ~/.bashrc lub wyloguj i zaloguj się ponownie do SSH.

source ~/.bashrc
Wynik
[adam@adamhitme:~]$ source ~/.bashrc
[adam@adamhitme ~]$ nvm -v
0.39.7
[adam@adamhitme ~]$

W porządku,, mamy wersję 0.39.7 u siebie. Teraz, możesz zainstalować nodeJS korzystając z nvm.

Zainstalujmy aktualną wersję LTS (obecnie jest to: v20.11.0).

wskazówka

Wersja LTS (Long-Term Support) to zawsze najświeższe stabilne wydanie, które otrzymuje długoterminowe wsparcie w postaci aktualizacji zabezpieczeń i poprawek błędów przez kilka lat.

nvm install --lts
Wynik
[adam@adamhitme ~]$ nvm install --lts
Installing latest LTS version.
Downloading and installing node v20.11.0...
Downloading https://nodejs.org/dist/v20.11.0/node-v20.11.0-linux-x64.tar.xz...
###################################################################################################################################################################################################### 100.0%Computing checksum with sha256sum
Checksums matched!
Now using node v20.11.0 (npm v10.2.4)
Creating default alias: default -> lts/* (-> v20.11.0)

Sprawdźmy wersję node:

[adam@adamhitme ~]$ node -v
v20.11.0

możesz też wydać polecenie nvm current

[adam@adamhitme ~]$ nvm current
v20.11.0
[adam@adamhitme ~]$

Instalacja kolejnej wersji nodeJS na serwerze

Poleceniem nvm list-remote możesz wyświetlić wersję nodeJS, które możesz zainstalować.

Zainstalujmy sobie nodeJS v18 poleceniem nvm install 18.

[adam@adamhitme ~]$ nvm install 18
Downloading and installing node v18.19.0...
Downloading https://nodejs.org/dist/v18.19.0/node-v18.19.0-linux-x64.tar.xz...
###################################################################################################################################################################################################### 100.0%Computing checksum with sha256sum
Checksums matched!
Now using node v18.19.0 (npm v10.2.3)
[adam@adamhitme ~]$

Następnie ustawmy v18 jako aktualnie używaną wersję, wykonaj to poleceniem nvm use:

[adam@adamhitme ~]$ nvm use 18
Now using node v18.19.0 (npm v10.2.3)
[adam@adamhitme ~]$

sprawdźmy:

[adam@adamhitme ~]$ node -v
v18.19.0
[adam@adamhitme ~]$ nvm current
v18.19.0
[adam@adamhitme ~]$

Jak ustawić domyślną wersję nodeJS

Poleceniem nvm list możesz sprawdzić jakie aktualnie masz zainstalowane wersje nodeJS:

[adam@adamhitme ~]$ nvm list 
-> v18.19.0
v20.11.0
default -> lts/* (-> v20.11.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.11.0) (default)
stable -> 20.11 (-> v20.11.0) (default)
lts/* -> lts/iron (-> v20.11.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.19.0
lts/iron -> v20.11.0
[adam@adamhitme ~]$

Do dyspozycji są v18.19.0 oraz v20.11.0 z czego obecnie używana jest v18 a domyślna to v20.

Aby to v18 była tą domyślną wersją, użyj polecenia nvm alias default 18.19.0

[adam@adamhitme ~]$ nvm alias default 18.19.0
default -> 18.19.0 (-> v18.19.0)
[adam@adamhitme ~]$

Przykładowa aplikacja nodeJS

Dzięki nvm możesz także uruchamiać swoją aplikację bez przełączania obecnej wersji nodeJS. Wykonaj to poleceniem:

nvm exec 20.11.0 node app.js

Utwórz sobie plik app.js, następnie wklej i zapisz poniższą treść:

Przykładowa aplikacja
const http = require("http");
const version = process.versions.node

http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Witaj swiecie! \n');
res.end(version);
}).listen(8000);

console.log('Server http://127.0.0.1:8000/');
console.log('Wersja NodeJS: '+version);

następnie użyj polecenia nvm exec:

Wynik
[adam@adamhitme ~]$ nvm exec 20.11.0 node app.js
Running node v20.11.0 (npm v10.2.4)
Server http://127.0.0.1:8000/
Wersja NodeJS: 20.11.0

[adam@adamhitme ~]$ nvm exec 18.19.0 node app.js
Running node v18.19.0 (npm v10.2.3)
Server http://127.0.0.1:8000/
Wersja NodeJS: 18.19.0