Zilmac блог
← Назад к технической практике

Как NVM управляет несколькими версиями Node.js? Способы переключения среды разработки Node 18, 20, 22, 24 и типичные проблемы

AIDevelopment ·~2 мин чтения

На 15 октября 2026 года Node 18 и Node 20 имеют статус EOL, а Node 22 и Node 24 отмечены в графике выпусков Node.js как LTS. Это различие важно при выборе среды: NVM позволяет установить несколько версий и выбрать нужную для текущей оболочки, но не продлевает поддержку устаревшей ветки. Установите версии, требуемые проектами, переключайтесь между ними командой выбранной реализации NVM и после каждого переключения проверяйте версию и путь к node. Статусы веток сверены с официальной таблицей выпусков Node.js.

Эта инструкция предназначена для разработчиков, которым нужно поддерживать проекты с разными требованиями к Node.js, проверять совместимость с Node 18, 20, 22 и 24 или настраивать удалённую среду разработки на Mac. Она также поможет разобраться, почему после переключения терминал по-прежнему запускает прежнюю версию или не находит команду NVM.

Последнее обновление — 15 октября 2026 года; статусы версий проверены по графику выпусков Node.js, а команды — по документации соответствующих проектов NVM. Перед рабочим развёртыванием повторно проверьте статус нужной ветки: сроки поддержки и доступность выпусков относятся к изменяющимся сведениям.

Выберите реализацию NVM с учётом операционной системы

>

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

Вариант Для какой среды подходит Переключение и проектные версии Оценка соответствия
nvm-sh macOS, Linux и WSL с POSIX-оболочкой Для переключения используется nvm use; .nvmrc может задавать версию проекта. Автоматический переход при смене каталога требует дополнительной настройки оболочки. Подходит для терминальной разработки в macOS и Linux
nvm-windows Windows Установка, список версий и переключение выполняются командами этой реализации. Возможности работы с проектными файлами нужно сверять с её документацией. Подходит для нативной Windows-среды

Таблица сравнивает область применения и рабочий процесс, а не производительность: сравнительные испытания здесь не проводились. Проект nvm-sh предназначен для POSIX-оболочек, включая macOS и WSL; у nvm-windows отдельные команды и правила настройки. Поэтому в Windows следуйте справочнику команд nvm-windows, не копируя туда без проверки конфигурацию оболочки из nvm-sh.

Для удалённого Mac обычно уместен сценарий с POSIX-оболочкой и nvm-sh. Если же приложение собирается на Windows, проверять установку и запуск следует именно в Windows-среде, соответствующей сборочному процессу. Это особенно важно, когда на машине уже есть Node.js из системного установщика: команда node может разрешаться в его каталог, а не в версию, которой управляет NVM.

При оценке вариантов по удобству для отдельной разработки можно ориентироваться на три критерия: совпадение реализации с операционной системой, доступность проектного способа фиксации версии и предсказуемость работы в терминале, где запускается сборка. Для macOS с оболочкой Zsh или Bash сценарий nvm-sh получает высокую оценку по соответствию; для Windows — высокая оценка у nvm-windows. Это не универсальный рейтинг: если CI работает в другой системе, решающей будет воспроизводимость версии именно в CI.

Установите и проверьте Node 18, 20, 22 и 24

>

Далее примеры установки и переключения относятся к nvm-sh на macOS, Linux или WSL. NVM в этом случае подключается к оболочке как скрипт, поэтому важно не только установить его, но и загрузить в конкретном терминале. Если команда nvm не распознаётся, сначала проверьте настройку профиля оболочки; повторная установка Node.js сама по себе эту проблему не устранит.

Установка веток выполняется по отдельности:

nvm install 18
nvm install 20
nvm install 22
nvm install 24

Команда с номером основной ветки просит NVM установить подходящий выпуск этой ветки. Чтобы выбрать конкретный выпуск, сначала проверьте доступные варианты средствами установленной реализации, затем используйте требуемую проектом версию. Для точного воспроизведения старого окружения важно знать не только основную ветку, но и конкретный выпуск, на котором проходят сборка и тесты.

После установки проверьте доступные версии и активное состояние:

nvm ls
nvm current
node -v
npm -v
command -v node

nvm ls показывает версии, установленные для текущей реализации, а nvm current помогает определить активную версию в оболочке. node -v и npm -v показывают, какие команды фактически запускаются. Наконец, command -v node показывает путь, который оболочка разрешает для node. Если активная версия NVM и вывод node -v не совпадают, не начинайте с удаления файлов: сначала проверьте, загружен ли NVM и какой путь первым стоит в PATH.

На дату проверки, 15 октября 2026 года, Node 18 и Node 20 отмечены как EOL, а Node 22 и Node 24 — как LTS в таблице выпусков. Это не мешает установить старую версию для тестирования или поддержки существующего проекта, но не означает, что такая ветка подходит для нового развёртывания. Для решения учитывайте требования приложения и отдельно оценивайте риски сопровождения. Статус и сроки поддержки проверяйте по официальной информации об окончании поддержки Node.js.

Установка версии не подтверждает совместимость проекта с ней. Перед переключением сверяйте требования проекта, конфигурацию сборки, зависимости и окружение развёртывания. Если команда тестирования должна проверить приложение на нескольких ветках, каждую из них нужно активировать явно и запускать в одинаковых условиях. Иначе результат может отражать различия конфигурации, а не поведение самого Node.js.

Переключайте активную версию и задавайте версию по умолчанию

>

В nvm-sh команда переключения выбирает установленную версию для текущей оболочки:

nvm use 18
node -v

nvm use 20
node -v

nvm use 22
node -v

nvm use 24
node -v

Этот способ подходит, когда нужно вручную проверить проект на разных ветках. Если требуемая версия ещё не установлена, установите её командой nvm install <версия>, а затем повторите nvm use <версия>. Установка и переключение — разные операции: первая добавляет версию в доступный набор, вторая выбирает одну из уже доступных версий для текущего окружения.

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

nvm alias default 22

После этого откройте новый терминал и проверьте, какая версия фактически выбрана:

nvm current
node -v
command -v node

Проверка в новой оболочке важна: команда настройки не доказывает, что профиль терминала загрузил NVM и выставил ожидаемый путь. Версия по умолчанию помогает, когда оболочка запускается вне каталога проекта с собственной настройкой. Но она не заменяет проектную версию: если репозиторий требует другую ветку, активируйте её в каталоге проекта и проверьте node -v.

Не переносите nvm alias default в Windows как универсальную команду. У nvm-windows собственные команды и способ задать версию для использования; сверяйтесь со справочником именно установленной реализации. В обоих случаях конечной проверкой служит не успешное сообщение команды, а совпадение ожидаемого номера с выводом Node.js и путём исполняемого файла.

Закрепите версию Node.js за проектом

>

В nvm-sh файл .nvmrc в корне проекта может обозначать ветку Node.js, на которой разработчики должны запускать команды. Например, для проекта, который проверяется на Node 20:

cd путь/к/проекту
printf '20\n' > .nvmrc
nvm install
nvm use
node -v

После перехода в каталог nvm use читает версию из .nvmrc. Если нужная версия не установлена, предварительно запустите nvm install. Когда файл находится в системе контроля версий, команда получает явную подсказку о версии проекта, а не полагается на то, какая ветка случайно была активна в предыдущем каталоге.

Для Node 18, 20, 22 и 24 принцип один: указывайте ту ветку, которую проекту действительно нужно проверять или использовать. Один .nvmrc задаёт одну версию для основного рабочего сценария. Если требуется совместимость сразу с несколькими версиями, переключайте каждую из них отдельно и запускайте тесты в одинаковом порядке. Не следует менять файл на лету без согласования с командой: зафиксированная версия может быть частью ожидаемой конфигурации сборки.

Само наличие .nvmrc не гарантирует автоматического переключения при каждом переходе между каталогами. В nvm-sh команда nvm use может прочитать этот файл из текущего или родительского каталога, но автоматический вызов при cd зависит от дополнительной настройки оболочки. Если такая интеграция не настроена, после перехода в проект запустите nvm use вручную.

В Windows не предполагайте, что поведение .nvmrc совпадает с nvm-sh. У nvm-windows отдельный набор функций и условий, поэтому перед автоматизацией проверьте документацию установленного выпуска. В любом случае проектный файл управляет лишь выбором Node.js: версии зависимостей, пакетного менеджера и нативных компонентов могут требовать отдельной фиксации и проверки.

Найдите причину, если терминал показывает старую версию

>

Если после переключения команда node по-прежнему показывает прежнюю версию или не запускается, проверяйте окружение последовательно. Такой порядок помогает отличить незагруженный NVM от конфликта путей и не менять сразу несколько настроек.

  1. Проверьте, доступен ли NVM в текущей оболочке. В macOS, Linux и WSL выполните command -v nvm. Если команда не найдена, проверьте, подключается ли NVM из профиля оболочки. Учитывайте, что терминал редактора, интерактивная оболочка и оболочка удалённой задачи могут загружать разные профили. После изменения конфигурации перезапустите нужный терминал.

  2. Проверьте, установлена ли нужная версия. Выполните nvm ls и найдите требуемую ветку. Если её нет, установите её через nvm install <версия>. В Windows используйте команды списка и установки из справки nvm-windows. Ошибка при отсутствии версии отличается от ошибки загрузки NVM: повторный вызов переключения не обязательно установит отсутствующую ветку.

  3. Установите, откуда запускается node. В POSIX-оболочке выполните command -v node, а в Windows — where.exe node. Если найденный первым путь относится к системной установке, отдельному пакетному менеджеру или другой среде, NVM может быть доступен, но не управлять командой, которая фактически запускается. Проверьте порядок PATH и настройку реализации, прежде чем удалять или менять системные файлы.

  4. Сопоставьте активную версию с командами Node.js. Выполните nvm current, затем node -v, npm -v и проверьте путь к исполняемому файлу. Если значения различаются, закройте старую оболочку, откройте новую и повторите проверку после активации версии. Состояние процесса может не обновиться после изменения профиля или переменной окружения.

  5. Проверьте глобальные инструменты и место запуска. Глобальные пакеты, установленные при одной версии Node.js, не следует считать автоматически доступными после переключения на другую. Если команда сборки не находится, выясните, установлена ли она в активном окружении. Затем повторите проверку внутри встроенного терминала редактора или удалённой задачи: они могут видеть иной PATH, чем обычный терминал.

Для диагностики nvm-windows используйте раздел официальной документации по устранению неполадок. В POSIX-среде распространённые причины — не загруженный профиль, другой путь Node.js в PATH и ручной запуск nvm use не в том терминале, где выполняется проект. Не исправляйте эти причины одновременно: измените одну настройку, откройте новую оболочку и повторите проверку, иначе будет сложно установить, что именно повлияло на результат.

Проверьте переключение в удалённой среде Mac

>

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

  1. Подключитесь способом, который будете использовать для разработки, и проверьте активную оболочку командой echo "$SHELL".
  2. Перейдите в корень репозитория и прочитайте .nvmrc, если файл есть: cat .nvmrc.
  3. Выполните nvm use. Если нужной версии нет среди установленных, сначала запустите nvm install.
  4. Сверьте nvm current, node -v, npm -v и command -v node.
  5. Запустите тест или сборку в этом же терминале. Если команда запускается редактором или удалённой задачей, повторите проверки непосредственно в этом окружении.

Для воспроизводимой проверки записывайте не только номер Node.js, но и оболочку, каталог проекта и путь к node. Если в репозитории нет .nvmrc, согласуйте требуемую версию с командой и зафиксируйте её в проекте или документации. Так будет проще отличить реальную несовместимость приложения от ситуации, когда терминал запустил не ту версию.

При проверке старого приложения учитывайте статус ветки Node.js, а при выборе среды для новой работы — требования проекта и актуальный график поддержки. NVM отвечает за установку и переключение версий, но не выбирает за команду безопасную версию и не гарантирует совпадение локального окружения с CI. Для общих вопросов о работе с удалённым Mac можно свериться с разделом поддержки Mac; сведения о конкретной оболочке и версии Node.js всё равно необходимо проверять непосредственно в рабочем сеансе.

Частые вопросы о переключении версий Node.js

>

Как переключаться между Node 18, 20, 22 и 24?
В nvm-sh установите нужные версии, затем выполните nvm use 18, nvm use 20, nvm use 22 или nvm use 24 в текущей оболочке. Проверьте результат командой node -v. В Windows используйте команды установленной реализации nvm-windows, не копируя команды и настройки POSIX-оболочки без проверки.

Как посмотреть установленные версии и задать версию по умолчанию?
В nvm-sh список показывает nvm ls, а активную версию можно сверить через nvm current и node -v. Команда nvm alias default 22 задаёт стандартную версию для новых оболочек. Затем откройте новый терминал и проверьте номер версии и путь команды. Для Windows применяйте документацию nvm-windows.

Почему после переключения терминал показывает старый Node.js?
Сначала выясните, загружен ли NVM в текущей оболочке; затем проверьте, не опережает ли другая установка Node.js в PATH управляемую версию. Для POSIX-оболочки используйте command -v node, для Windows — where.exe node. После исправления профиля перезапустите терминал и заново сопоставьте версию с путём.

Как использовать свою версию Node.js в каждом проекте?
В nvm-sh запишите требуемую версию в .nvmrc в корне проекта, перейдите в каталог и выполните nvm use. Если автоматическое переключение при смене папки не настроено, вызывайте команду вручную. Для Windows отдельно проверьте, поддерживает ли установленная реализация нужный проектный сценарий.

Перед запуском сборки или тестов удобно сверить четыре пункта: версия соответствует проекту, оболочка загрузила NVM, node -v показывает ожидаемое значение, а путь команды ведёт в управляемую среду. Если для работы требуется удалённый Mac, сначала изучите фактически доступные условия и характеристики на странице аренды Mac; не предполагайте наличие конфигураций или возможностей, которые там не указаны. Для короткой проверки совместимости временная среда может избавить от перенастройки основной машины, тогда как длительная постоянная нагрузка, потребность в физических интерфейсах или автономная локальная работа могут лучше соответствовать собственному Mac.

Запускайте Node.js-проекты на удалённом Mac от Zilmac

Арендуйте выделенный Mac mini M4 с полной macOS и используйте Node.js для сборки, тестирования и задач CI.

Подключайтесь к удалённой машине по SSH или через VNC и работайте с проектами без покупки собственного Mac. — Посмотреть варианты плана

Ограниченное предложение

Zilmac

Арендуйте выделенный Mac mini M4 с полной macOS и используйте Node.js для сборки, тестирования и задач CI.

Вернуться домой
Ограниченное предложение Посмотреть планы