NVM - Инсталирайте и управлявайте множество версии на Node.js в Linux


Node Version Manager (NVM накратко) е прост bash скрипт за управление на множество активни версии на node.js във вашата Linux система. Позволява ви да инсталирате няколко версии на node.js и да преглеждате всички версии, налични за инсталиране, и всички инсталирани версии на вашата система.

Nvm също поддържа изпълнение на конкретна версия на node.js и може да покаже пътя до изпълнимия файл до мястото, където е инсталиран, и много повече.

В тази статия ще обясним как да инсталирате Node Version Manager (NVM), за да управлявате множество активни версии на node.js във вашата Linux дистрибуция.

Инсталиране на NVM (Node Version Manager) в Linux

За да инсталирате или актуализирате nvm на вашата дистрибуция на Linux, можете да изтеглите скрипта за автоматично инсталиране, като използвате инструменти за команден ред curl или wget, както е показано.

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

Горният скрипт за автоматично инсталиране клонира хранилището nvm към ~/.nvm във вашата домашна директория и добавя необходимите команди за източник към вашите скриптове за стартиране на обвивката, т.е. ~/ .bash_profile, ~/.zshrc, ~/.profile или ~/.bashrc, в зависимост от шел програмата, която използвате използват, както е показано в следния резултат.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15916  100 15916    0     0  34227      0 --:--:-- --:--:-- --:--:-- 34301
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 359, done.
remote: Counting objects: 100% (359/359), done.
remote: Compressing objects: 100% (305/305), done.
remote: Total 359 (delta 40), reused 168 (delta 28), pack-reused 0
Receiving objects: 100% (359/359), 219.46 KiB | 6.86 MiB/s, done.
Resolving deltas: 100% (40/40), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:
...

След като инсталацията приключи, затворете текущия си прозорец на терминала и отворете нов Или просто извлечете своя профилен файл на обвивката, за да заредите nvm. Например, ако използвате bash, изпълнете следната команда:

source ~/.bashrc
OR
source ~/.profile

След това проверете дали nvm е инсталиран на вашата система, като използвате следната команда.

command -v nvm

nvm

Той ще покаже резултат като „nvm“, ако инсталацията е била успешна.

Инсталирайте няколко версии на Node.js с помощта на NVM

Сега е време да научите как да използвате Node Version Manager в Linux. За да изтеглите, компилирате и инсталирате най-новата версия на node, изпълнете следната команда:

nvm install node 

Обърнете внимание, че в горната команда „възел“ е псевдоним за най-новата версия.

Downloading and installing node v20.0.0...
Downloading https://nodejs.org/dist/v20.0.0/node-v20.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.0.0 (npm v9.6.4)
Creating default alias: default -> node (-> v20.0.0)

За да инсталирате конкретна версия на „възел“, първо избройте наличните версии на възел и след това инсталирайте версията, както е показано.

nvm ls-remote
nvm install 19.0.0  
Downloading and installing node v19.0.0...
Downloading https://nodejs.org/dist/v19.0.0/node-v19.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v19.0.0 (npm v8.19.2)

След като инсталирате версия на Node.js с помощта на nvm, системата вече трябва да сочи към Node.js и npm версии под nvm. Можете да проверите местоположението на използвания двоичен файл/команда node и npm, като изпълните командата which, както следва:

which node
/root/.nvm/versions/node/v20.0.0/bin/node

# which npm
/root/.nvm/versions/node/v20.0.0/bin/npm

# node -v
v20.0.0

# npm -v
9.6.4

Изброяване на инсталираните версии на Node.js

Можете да проверите всички инсталирани версии със следната команда:

nvm ls
->      v19.0.0
        v20.0.0
         system
default -> node (-> v20.0.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.0.0) (default)
stable -> 20.0 (-> v20.0.0) (default)
lts/* -> lts/hydrogen (-> 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.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.0 (-> N/A)
lts/hydrogen -> v18.16.0 (-> N/A)

Изберете версия на възел за проект

Тук nvm става интересно. Сега можете да използвате nvm, за да изберете версията на node.js, която да използвате за всеки проект, върху който работите, въз основа на изискванията. Нека видим как да направите това, както е обяснено по-долу.

Отворете няколко терминала и се преместете в директориите на проекта. За това ръководство имаме два проекта под ~/projects/app-server и ~/projects/test-ui, които измамно изискват версия на възел 19.0.0 и 20.0.0 .

------------ Project 1 ------------ 
cd ~/projects/api-server
nvm use 19.0.0
node -v

------------ Project 2 ------------
cd ~/projects/test-ui
nvm use 20.0.0
node -v

Например, ако имате инсталиран глобален пакет, когато версия 19.0.0 е активна, когато преминете към версия 20.0.0, трябва да преинсталирате глобалния пакет под новата версия.

Важно е, че можете да видите пътя до изпълнимия файл до мястото, където е инсталирана конкретна версия на възел, както следва:

nvm which 20.0.0
nvm which 19.0.0
nvm which system  #check system-installed version of a node using “system” alias

Задайте версия по подразбиране Node.js в Linux

Освен това, за да зададете ръчно версия на възел по подразбиране, която да се използва във всяка нова обвивка, използвайте псевдонима “default”, както е показано.

nvm alias default 20.0.0
nvm alias default system
nvm alias default 19.0.0

Деинсталиране на Node.js версия в Linux

За да деинсталирате или премахнете версия на Node.js, изпълнете следната команда (не забравяйте да замените 19.0.0 с номера на версията):

nvm uninstall 19.0.0

Деинсталиране на NVM в Linux

За да премахнете ръчно nvm от вашата система, изпълнете следните команди:

rm -rf "$NVM_DIR"
OR
rm -rf ~/.nvm

След това редактирайте ~/.bashrc (или приложимия конфигурационен файл на профил на обвивката, както е посочено по-горе) и премахнете следните редове за конфигурация:

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

За повече информация вижте nvm --help или отидете в хранилището на Node Version Manager Github: https://github.com/nvm-sh/nvm.

Това е всичко! Node Version Manager е прост bash скрипт за управление на множество активни версии на node.js във вашата Linux система. Използвайте формата за обратна връзка по-долу, за да зададете въпроси или да споделите вашите коментари с нас.