Реклама ООО Таймвэб
Реклама ООО Таймвэб
Реклама ООО Таймвэб

Как управлять версиями Node.js и NPM с помощью NVM?

Обсудить
Как управлять версиями Node.js и NPM с помощью NVM?
Реклама. ООО «ТаймВэб». erid: LjN8K9N1z

Среда выполнения Node.js позволяет запускать код на удаленном сервере вместо традиционного исполнения в браузере. И разработчики на JavaScript часто пользуются этим преимуществом, особенно при работе с серверными приложениями. 

Для обеспечения надежности и эффективности проектов, а также для упрощения их отладки и проверки кода, важно поддерживать актуальную версию Node.js и NPM. Эту задачу можно выполнить с помощью Node Version Manager (NVM), который позволяет легко переключаться между разными версиями этих инструментов. В данной статье мы рассмотрим, как использовать NVM для управления и оптимизации процесса разработки.

Важно! Статья предназначена для пользователей, которые знают язык JavaScript, а также умеют работать с платформами Node.js и NPM.

Актуальные версии Node.js и NPM

С каждым выпуском Node.js добавляются новые функции и улучшения. Самой актуальной версией является 20.6.0, которая была опубликована 6 сентября 2023 года. Обновленная версия NPM 10.1.0, появилась 11 сентября. Она также включает ряд полезных функций, которые максимально раскрываются при интеграции с Node.js. 

NVM в числе прочего позволяет устанавливать обновленные версии обоих продуктов. 

Как установить Node Version Manager

Конечно, для того чтобы использовать NVM, сначала его нужно установить. Это делается индивидуально на стороне пользователя, он может адаптировать менеджер под свои конкретные задачи. К тому же, NVM при каждом запуске вызывается заново и может быть настроен под любую программную оболочку. Этот менеджер совместим с различными операционными системами, включая Unix, Windows, macOS и прочие.

Для установки NVM рекомендуется использовать стандартные команды curl или wget:

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

Функция install.sh загружает NVM напрямую из репозитория на сайте в файл ~/.nvm. 

Также для каждой программной оболочки создается отдельный файл профиля:

~/.bash_profile
~/.zshrc
~/.profile
~/.bashrc

Разработчик может выбрать конкретный файл профиля под свои потребности в зависимости от текущей задачи. 

Далее в выбранные файлы профиля необходимо добавить указанные строки кода с помощью процедуры export:

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

В этом фрагменте кода после задания процедуры export осуществляется вставка специфических участков кода из {Home}/.nvm в файлы, расположенные в директории NVM_DIR.

Для проверки корректности можно осмотреть добавленные строки в nvm (на примере файла bash_profile):

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 теперь установлен в вашем проекте и его можно использовать для эффективного управления различными версиями Node.js.

Как пользоваться Node Version Manager

После интеграции NVM в наш проект можно начать применять его возможности на практике. Давайте попробуем установить последнюю версию Node.js с помощью менеджера. 

Для этого используем следующую команду:

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

В данном примере NVM не только загружает последние версии пакета Node с официального сайта (третья строка), но и отображает текущую используемую версию (в конце). 

Также можно проверить совместимость версий Node.js и NPM на вашем компьютере:

$ node -v
v20.6.0
$ npm -v
10.1.0

Вышеуказанные команды возвращают последнюю установленную версию. То есть в нашем примере это будут актуальные на данный момент Node.js 20.6.0 и NPM 10.1.0.

При необходимость можно таким же образом установить любую доступную версию:

$ 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)

Ее правильное название соответствует стандартной таблице SemVer. А если попытаться загрузить версию, которая уже установлена, NVM уведомит об этом и прекратит операцию:

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

Можно также проверить все версии node.js, имеющиеся в проекте:

$ nvm ls
-> v10.14.0
   v10.15.0
   v10.16.0
   v12.16.0
    v13.9.0
    v15.4.0
    v20.6.0
     system
default -> 12.16.0 (-> v12.16.0)
node -> stable (-> v20.6.0) (default)
stable -> 15.4 (-> v20.6.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)

Указатель стрелки (->) отображает текущую используемую версию Node для каждого параметра. Это облегчает управление при наличии множества установленных версий.

С помощью функции nvm use можно быстро переключаться между версиями Node:

$ 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 v20.6.0 (npm v10.1.0)
$ nvm use stable
Now using node v20.6.0 (npm v10.1.0)

Здесь в скобках отображается соответствующая версия NPM. Иногда бывает так, что для некоторых более ранних версий Node.js используется более новая NPM. 

В примере выше это:

  • версия node 10.16.0 использует npm 6.14.5;
  • а версия node 13.9.0 использует 6.13.7. 

Чтобы синхронизировать версии, можно использовать следующие команды:

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

Также можно просто обновить NPM до последней версии для текущей версии Node.js. Для этого нужно использовать такую команду:

$ nvm install-latest-npm

Это достаточно удобно и эффективно. Перечисленные команды NVM обеспечивают гибкость в управлении версиями Node. Их можно использовать для настройки новых проектов и для оптимизации существующих.

Важно учитывать, что это применимо только к определенной оболочке. При переходе на новую модификации Node отменяются. 

Чтобы этого избежать, можно задать версию Node.js по умолчанию (default):

$ nvm alias default 20.6.0

Указанная версия будет единой для всех оболочек. 

Рекомендуется сохранять версии в соответствии с SemVer в файле .nvmrc. В итоге команды NVM (install, use, exec, run, which и прочие) автоматически будут использовать версию из этого файла:

$ cat .nvmrc
20.6.0
$ nvm use
Found '/Users/fuje/.nvmrc' with version <20.6.0>
Now using node v20.6.0 (npm v10.1.0)

Для проверки активной версии можно использовать следующую команду:

$ nvm current
v20.6.0

Чтобы увидеть полный список доступных версий Node, используйте команду:

$ nvm ls-remote

В результате отобразится полный список выпущенных версий Node – он будет достаточно длинным, так как существующие обновления сохраняются в исходном виде, а к ним постоянно продолжают добавляться все новые и новые версии.

Однако, если указать базовый номер версии, то отобразится список только с ее подверсиями. И он будет содержать значительно меньше позиций:

$ 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

С помощью команды which можно отобразить путь к скачанным версиям и самому NVM:

$ 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

Это тоже достаточно удобная функция, которая помогает определить, где находится конкретная версия Node.js на вашем компьютере.

Также можно запустить приложение с нужной версией Node:

$ nvm run 10.15.0 app.js

Мы рассмотрели лишь базовые возможности NVM. Вы можете отобразить для просмотра дополнительные функции с помощью команды help:

$ nvm --help

Обновление Node Version Manager

Помимо установки новых версий Node.js и NPM время от времени требуется обновлять и сам NVM. Более новые версии могут обладать улучшенным интерфейсом или иметь дополнительные функции.

Для примера давайте рассмотрим обновление NVM до самой актуальной версии 0.39.5 с помощью команды curl:

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/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

Ссылка предназначена для загрузки обновленной версии, а указанные папки – для ее установки. Цифры в верхней части отображают параметры загрузки, предоставляя гибкость в управлении процессом.

Чтобы активировать обновленную версию NVM, необходимо перезапустить консоль кода, как указано в инструкциях по установке. 

После перезапуска можно проверить результат:

$ nvm --version
0.39.5

Одним из самых значимых обновлений NVM является добавленная возможность настройки цветов команд. Это способствует более яркому и понятному отображению информации на экране, улучшая тем самым удобство работы в Node.js.

nvm set-colors [<color codes>]

Set five text colors using format “yMcBg”. Available when supported. Initial colors are:
g b y r e 
Color codes:
r/R = red / bold red 
g/G = green / bold green 
b/B = blue / bold blue
c/C = cyan / bold cyan 
m/M = magenta / bold magenta 
y/Y = yellow / bold yellow
 /  =       /
e/W = light grey / white

Управлять цветами можно с помощью функции set-colors:

$ nvm set-colors cgYmW

Чтобы показать стандартные цвета, нужно применить команду nvm ls:

[$ nvm 1s
        v10.14.0
        v12.15.0
->      v12.16.0
        v13.16.0
        v15.9.0
        V20.4.0
        system
default -> 12.16.0 (-> v12.16.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v15.4.0) (default)
stable -> 15.4 (-> v15.4.0) (default)
lts/* -> 1ts/fermium (-> N/A)
lts/argon -> v5.9.1 (-> N/A)
lts/boron -> v7.17.1 (-> N/A)
lts/carbon -> v9.17.0 (-> N/A)
lts/dubnium -> v11.23.0 (-> N/A)
lts/erbium -> v14.20.0 (-> N/A)
lts/fermium —> v15.15.1 (-> N/A)

Пользователь может по собственному желанию изменить цвета. Например, вот так:

[$ nvm 1s
        v10.14.0
        v12.15.0
->      v12.16.0
        v13.16.0
        v15.9.0
        V20.4.0
        system
default -> 12.16.0 (-> v12.16.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v15.4.0) (default)
stable -> 15.4 (-> v15.4.0) (default)
lts/* -> 1ts/fermium (-> N/A)
lts/argon -> v5.9.1 (-> N/A)
lts/boron -> v7.17.1 (-> N/A)
lts/carbon -> v9.17.0 (-> N/A)
lts/dubnium -> v11.23.0 (-> N/A)
lts/erbium -> v14.20.0 (-> N/A)
lts/fermium —> v15.15.1 (-> N/A)

Цветной ввод и отображение кода – это полезная функция для профессиональных разработчиков, которая улучшает качество и удобство разработки. Актуальная версия NVM упрощает этот процесс и позволяет создать персонализированный стиль.

Заключение

Все больше опытных разработчиков JavaScript переходят на платформу Node и используют NVM для управления ее обновлениями. Потому что менеджер NVM – это простой инструмент для установки актуальных версий Node.js и NPM. Он позволяет оптимизировать работу в программной среде Node и расширить ее возможности. Кроме того, NVM помогает развивать навыки работы с различными программными оболочками на разных платформах, обеспечивая их совместимость. 

Стандартные версии Node.js, которые классифицированы по SemVer, регулярно обновляются и всегда доступны на официальном сайте NVM.

Наши постоянные авторы и читатели делятся лайфхаками, основанными на личном опыте. Полная свобода самовыражения.

Комментарии

С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
С помощью соцсетей
У меня уже есть аккаунт Войти
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте