Node Version Manager (nvm): удобное управление версиями Node.js
2025-10-14

Node Version Manager (nvm): удобное управление версиями Node.js

Node Version Manager, или nvm — это инструмент, который существенно упрощает работу с разными версиями Node.js. Если вы разработчик на Node.js, то знаете, как важно быстро переключаться между версиями для разных проектов. nvm решает эту задачу максимально просто и эффективно — в командной строке.

Что такое nvm и зачем он нужен

nvm — это менеджер версий Node.js, который устанавливается для каждого пользователя и вызывается в рамках каждого сеанса shell. Инструмент работает на любой POSIX-совместимой оболочке (bash, zsh, sh, dash, ksh) и доступен для систем Unix, macOS, а также для Windows через WSL.

Основные возможности:

  • Лёгкая установка и переключение между версиями Node.js
  • Поддержка установки любой конкретной версии, а также последних стабильных и LTS-версий
  • Возможность создавать алиасы для версий Node.js
  • Установка нужной версии из .nvmrc файла проекта — автоматический выбор версии для текущей директории
  • Перенос глобально установленных npm пакетов с одной версии на другую
  • Удобная интеграция с bash, zsh и даже fish (через сторонние инструменты)
  • Скачивание бинарных файлов или сборка Node.js из исходников
  • Возможность установки нескольких параллельных версий io.js, которые долгое время шли параллельно с Node.js

Таким образом nvm позволяет работать с разными Node.js версиями так же просто, как с разными ветками в git — переключение занимает секунды.

Как установить и начать работать с nvm

Установка nvm сводится к выполнению одной команды в терминале:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

Или аналог с wget. Скрипт сам скачает репозиторий nvm в ~/.nvm, обновит конфигурации shell и позволит начать использовать nvm сразу после перезапуска терминала (или прогрузки профиля).

Как использовать nvm: фундаментальные команды

  • nvm install <версия> — скачивает и устанавливает указанную версию Node.js, например nvm install 14.17.0
  • nvm use <версия> — переключает текущую сессию на выбранную версию Node.js
  • nvm ls — показывает локально установленные версии
  • nvm ls-remote — показывает доступные для установки версии Node.js и io.js
  • nvm alias <имя> <версия> — создание алиаса для удобства переключения
  • nvm uninstall <версия> — удаление установленной версии Node.js

Пример типичной работы:

$ nvm install 16
$ nvm use 16
$ node -v
v16.9.1
$ nvm use 14
$ node -v
v14.18.0

Так вы в несколько команд быстро переключаетесь между версиями.

Интеграция с проектами: автоматический выбор версии node с помощью .nvmrc

Очень удобный фичей nvm является поддержка файла .nvmrc — в корне проекта создаёте текстовый файл с номером версии Node.js, которую нужно использовать. При заходе в директорию и вызове команды nvm use nvm прочитает эту версию и переключится автоматически.

Например:

echo "14.17.0" > .nvmrc
nvm use

Для большей автоматизации можно добавить в конфигурацию shell функцию, которая будет автоматически переключать версию при смене директории.

Работа с LTS и глобальными пакетами

Node.js имеет долгосрочную поддержку (LTS) — nvm полностью поддерживает установку именно этих версий:

nvm install --lts

При установке можно автоматически переустановить глобально установленные npm-пакеты из текущей версии:

nvm install --reinstall-packages-from=current 14

Это избавляет от необходимости каждый раз по новой ставить важные инструменты и библиотеки.

Особенности и проблемы при использовании

  • nvm не требует sudo для установки глобальных npm-пакетов, работает с пользователем
  • На macOS и Windows (через WSL) могут возникать нюансы с конфигурацией shell, для которых есть подробные инструкции
  • На Alpine Linux пришлось настроить процесс установки вручную из-за особенностей libc (musl)
  • nvm не поддерживает Fish shell напрямую, но есть расширения сторонних разработчиков
  • Для Apple Silicon Mac есть рекомендации по установке старых версий Node.js через Rosetta

Все эти особенности подробно описаны в документации проекта.

Почему nvm полезен разработчику

  • Гибкость. Легко тестировать код на разных версиях Node.js без установки всего несколько раз вручную.
  • Чистота. Каждая версия изолирована, пакеты не смешиваются, что предотвращает конфликты.
  • Автоматизация. Использование .nvmrc для авто-подбора версии в проекте избавляет от ошибок.
  • Кроссплатформенность. Поддерживаются Unix-подобные системы и Windows с WSL.
  • Широкая поддержка версий. Можно устанавливать от самых старых старых до самых новых версий Node.js и io.js.

Итог

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

timeweb-cloud