Управление версиями Node.js с помощью nodenv
Если вы разрабатываете или как я тестируете по написанное на Node.js, то наверняка сталкивались с необходимостью управлять несколькими версиями Node.js. Для этих целей отлично подходит nodenv — легковесная утилита для управления версиями Node.js.
Кратко плюсы можно описать так:
- Изоляция версий Node.js для разных проектов.
- Легко устанавливать новые версии, без риска сломать старые.
- Простота и надёжность —
nodenvработает быстро и стабильно. - Интеграция с shell, автоматическое переключение версий при смене директории.
- Возможность временного изменения версии через
nodenv shell.
Установка
Для установки nodenv как всегда будем использовать Homebrew:
brew install nodenv
После установки нужно добавить nodenv в ваш шел, в моем случае это zsh.
eval "$(nodenv init -)"
source ~/.zshrc
Просмотр и установка версий Node.js
Посмотреть последние стабильные версии для установки:
nodenv install --list
Посмотреть все доступные версии для установки:
nodenv install --list-all
Установить нужную версию, например, 22.16.0:
nodenv install 22.16.0
Переключение между версиями Node.js
Установить версию глобально, т.е по умолчанию:
nodenv global 22.16.0
Эта версия будет использоваться по умолчанию во всех проектах, если не указано иное.
Установить локальную версию (для конкретного проекта):
Перейдите в папку проекта и выполните:
cd ../bla-bla/my-project/ nodenv local 24.2.0
Теперь при входе в эту директорию автоматически будет активироваться версия 24.2.0.
И например перейдем в другую директорию:
cd ../bla-bla/my-other-project/ nodenv local 22.16.0
Теперь в этой директории будет использоваться версия 22.16.0.
Использование nodenv shell
Иногда бывает удобно временно изменить версию Node.js только для текущей сессии терминала, без изменения глобальной или локальной настроек. Для этого используется команда:
nodenv shell 24.15.0
Теперь в текущей сессии терминала будет использоваться версия 16.15.0. Как только вы закроете терминал, эта настройка сбросится.
Удаление ненужных версий
nodenv uninstall 14.19.3