Управление версиями Node.js с помощью nvm в Windows
Вопрос экономии времени и удобства окружения разработчика — штука сложная. Работая с Node.js, иногда приходится тестировать своё приложение не только в той версии, которую используете вы, но и в тех, что были выпущены до неё или даже после. В большинстве своём, это касается пакетов (библиотек), которые распространяются через npm. Разумеется, вы можете использовать для этих целей Travis CI, но этот инструмент создан не для этого.
Наиболее простым способом устанавливать и переключать версии Node.js на Linux является использование утилиты nvm. Для разработчиков, которые «сидят» на Windows, существует порт этой утилиты, хотя и менее продвинутый. Разбираемся в управлении версиями Node.js через консоль в Windows.
Что такое nvm?
nvm (Node Version Manager) — это довольно простой скрипт, который позволяет устанавливать, переключать и удалять версии Node.js на лету. Проще говоря, nvm даёт вам возможность держать на одной машине любое количество версий Node.js. При установке новой версии для неё создаётся отдельная директория, например, 5.0.0 или 4.2.2. При переключении версий скрипт подменяет путь до Node.js в PATH.
При этом нужно помнить, что глобальные пакеты для каждой версии свои и никак не пересекаются. Это значит, что если вы глобально установили пакет, используя Node.js версии 4.2.2 и переключились на версию 5.1.0, то этот же пакет вам придётся устанавливать повторно уже для этой версии.
Установка nvm
Напомню, что речь сейчас идёт про Windows, и установить nvm здесь так же «сложно», как и любую другую программу или игру. Для этого вам придётся перейти в репозиторий nvm-windows и загрузить установочный пакет. Далее процедура полностью стандартна, как и для любого другого установочного файла в Windows: выбираете директорию установки и несколько раз кликаете на «Далее».
Установка Node.js
Теперь, когда у вас установлен nvm, пришло время добавить новую версию Node.js. Для этого потребуется прочитать справку, которую можно вызвать, используя команду nvm .

Сначала посмотрим на список доступных для установки версий Node.js, который можно открыть командой $ nvm list available . В этом списке доступны как стабильные, так и нестабильные релизы.

Обратите внимание, что здесь не хватает 5-ой версии Node.js. Дело в том, что создатель nvm для Windows ещё не подготовил новый релиз, добавляющий 5-ую версию Node.js в этот список.
Итак, установим последнюю версию Node.js четвертой ветки. Для этого, к сожалению, потребуется полностью прописать версию Node.js, хотя в версии под Linux и OSX можно просто указывать мажорную цифру (4 или 5).
$ nvm install 4.2.2
Тоже самое можно проделать с пятой веткой:
$ nvm install 5.1.0
Помимо версии, при установке есть возможность указать разрядность, например, для установки Node.js 5.1.0 32-битной разрядности следует выполнить
$ nvm install 5.1.0 32
Переключение версий
Посмотрим на список уже установленных версий Node.js на вашей машине, выполнив в консоли команду $ nvm list :

Для того, чтобы начать использовать Node.js версии 4.2.2, нужно прописать в консоли $ nvm use 4.2.2 . После этого из консоли станет доступна именно эта версия Node.js и поставляемая вместе с ней версия npm:

Соответственно, чтобы переключиться на Node.js версии 5.1.0, нужно выполнить команду:
$ nvm use 5.1.0
Теперь, когда вы выполняете команду $ nvm list , в выводе будет присутствовать указатель текущей версии:

Создание синонимов
Я вынужден был создать этот заголовок в виду того, что «настоящий» nvm позволяет назначать установленным версиям Node.js синонимы. К сожалению, пока что nvm для Windows не умеет этого.
Немного про глобальные пакеты
Как я уже говорил в начале, nvm разделяет версии Node.js по директориям, и, из-за этого, устанавливаемые глобально пакеты доступны лишь в той версии, в которой они были установлены.
Для примера я установлю свой же пакет windows-ls в версии 4.2.2 и попытаюсь использовать его в версии 5.1.0. В итоге я получаю ошибку, говорящую о том, что такого пакета нет.

Итоги
Все мы знаем, что Windows — это не та платформа, на которую ориентированы разработчики инструментов, которые нужны веб-разработчикам. Примеров, отображающих эту ситуацию довольно много и для каждого они свои, поэтому приводить я их здесь не буду. Рассмотренная в этой статье утилита делает жизнь разработчикам на Windows чуточку лучше, позволяя сконцентрироваться на работе, а не загрузке, установке и удалении различных версий Node.js.
Делимся на оплату хостинга или кофе.
Чем чаще пью кофе, тем чаще пишу статьи.
Как обновить NodeJS?
Использовать Bash-скрипт для управления/переключения нодой: nvm .
Версия для Windows .
Особый смак в переключениях активной версии ноды, например:
nvm list * 4.6.1 0.12.0 node -v v4.6.1 nvm use 0.12.0 Now using node v0.12.0 node -v v0.12.0
Если хочется попроще, то предлагаю использовать следующий алгоритм:
-
Очистить кэш npm :
npm cache clean -f
npm install -g n
-
Стабильная версия:
n stable
n latest
n 0.8.14
n rm 0.8.14
n - 0.8.14
Для OS X можно использовать менеджер пакетов Homebrew :
$ brew upgrade node
Отслеживать
ответ дан 27 фев 2017 в 5:07
user207618 user207618
Ответ выполняет поставленную задачу, но лучше использовать nvm , который специально для этого и был создан + он дает возможность очень просто переключаться между версиями
27 фев 2017 в 5:24
@ВасилийБарбашев, пожалуй да, можно и про него добавить. Сейчас обновлю.
– user207618
27 фев 2017 в 5:28
Когда мне на CentOs 7 требовалось обновить версию NodeJs(там по-моему изначально 6-ая стоит), поскольку в частности не устанавливался Puppeteer я обновлялся до 10-ой версии по этой статье http://blog.ivru.net/?id=221
Если коротко там написано, что NodeJs стандартной версии на CentOs 7 устанавливается выполнением команды: yum install nodejs
При этом если Вам нужна более свежая версия NodeJs чем стандартная, Вы можете перед установкой выполнить команду curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash — в данном примере команды для установки будет выбрана 10-ая версия, Вы перед нажатием Enter можете отредактировать версию на нужную Вам.
Более подробно по установке читайте по ссылке, так же в этой же статье Вы сможете найти файлы необходимых репозиториев(по умолчанию или необходимых для установки) в случаи если Ваши файлы повреждены и попытка установки заканчивается ошибкой.
Как изменить версию nodejs для пользователя?
На данный момент я работаю удаленно с сервером. У меня есть удаленный доступ к репозиторию проекта на нем (сервере). Мне необходимо установить в этом проекте node.js хотя бы версии 16. В папке с проектом установлена версия node.js 10.24.1, однако каким-то образом был обновлен npm до последней на данный момент версии. Таким образом образовался конфликт и я не могу проводить какие-либо операции с npm. Я запросила root права, чтобы можно было переустановить node.js. Я установила версию 16 с помощью nvm (также мной установленном). Однако при входе снова под изначальными данными (без root), оказалось, что в репозитории все еще установлена node 10. При проверке командой
which node
получаю ответ
/usr/bin/node
А если мы заходим под root правами, то ответ на ту же команду
/root/.nvm/versions/node/v16.18.1/bin/node
Каким образом можно решить создавшуюся проблему?
- Вопрос задан 15 мая
- 216 просмотров
2 комментария
Простой 2 комментария

Если у вас есть nvm то смотрите: nvm list
какие версии стоят
nvm install — ставите нужную если надо
nvm alias default 16.14.2
nvm use
и задаете какую нужно использовать по дефолту
Вообще вопрос задан странно если в репе используется 10 версия, а на вм 16 стоит и вы хотите запустить легаси код на новой версии ноды?
Анастасия @AnastasiyaLebedevich Автор вопроса
Виктор Л, суть в том, что проект не собирался с нуля, он базировался на старых технологиях, с которыми работали разработчики. Я занималась миграцией данного проекта (проект на vue). Теперь мне необходимо обновить реп, но в связи с тем, что на сервере конфликт версий npm и node (конфликт именно в самом репозитории и при входе не под рут правами), я не могу заново пересобрать проект. Если заходим на сервер под рут правами, то там node стоит нормально. Переключается на разные версии (с пом npm) и т.д. Вот только в репе с проектом этого не видно. Словно node установлена только для root.
Решения вопроса 0
Ответы на вопрос 3

Для правильного вопроса надо знать половину ответа
Установите node через nvm от того пользователя, под которым она будет использоваться. Установка выполняется в каталог пользователя и не требует прав root’а.
Ответ написан 15 мая
Анастасия @AnastasiyaLebedevich Автор вопроса
При попытке установить nvm для данного пользователя всплывает данная ошибка
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 15916 100 15916 0 0 52872 0 --:--:-- --:--:-- --:--:-- 52877 => nvm is already installed in /home/wmn-calendar/.nvm, trying to update using git => => Compressing and cleaning up git repository => nvm source string already in /home/wmn-calendar/.bashrc => bash_completion source string already in /home/wmn-calendar/.bashrc ERROR: npm v9.6.6 is known not to run on Node.js v10.24.1. This version of npm supports the following node versions: `^14.17.0 || ^16.13.0 || >=18.0.0`. You can find the latest version at https://nodejs.org/. ERROR: /usr/lib/node_modules/npm/lib/utils/exit-handler.js:19 const hasLoadedNpm = npm?.config.loaded ^ SyntaxError: Unexpected token . at Module._compile (internal/modules/cjs/loader.js:723:23) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) at Module.require (internal/modules/cjs/loader.js:692:17) at require (internal/modules/cjs/helpers.js:25:18) at module.exports (/usr/lib/node_modules/npm/lib/cli.js:42:23) at Object. (/usr/lib/node_modules/npm/bin/npm-cli.js:2:25) at Module._compile (internal/modules/cjs/loader.js:778:30) => 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
Ну так в ошибке явно написано, что npm менеджер 9.6.6 работает только с версии node.js 14.17 и выше, вы же им на 10й ноде пользоваться пытаетесь
Анастасия @AnastasiyaLebedevich Автор вопроса
Да, это и есть основная проблема. Nvm на рут правах у меня есть, если я захожу под другим юзером — nvm установить не могу. Npm запустить не могу. Поэтому и не могу понять, как переустановить этот nodejs

Анастасия, Попробуйте из .bashrc удалить строки с указанием nvm, npm и node и снова установить nvm. Только сделайте резервную копию файла.
Анастасия @AnastasiyaLebedevich Автор вопроса
Rsa97 , а если сейчас при попытке установить nvm у меня выбрасывает ошибку, что с npm проблемы — не будет ли потом, после удаления всех указанных вами файлов, данная команда запрашивать файлы npm, которых у меня не будет? Или это уже не будет иметь значения, есть npm или нет?

Анастасия, nvm при установке должен добавить в .bashrc пути к нужным файлам. И да, после удаления записей из .bashrc лучше перелогиниться.
Как поменять версию Node.js на Windows
Node.js – это популярная платформа, которая позволяет запускать JavaScript на сервере. Она позволяет разработчикам создавать мощные и масштабируемые веб-приложения. Однако, иногда может возникнуть необходимость обновить версию Node.js для улучшения производительности приложений или исправления ошибок.
Если вы используете Windows и хотите узнать, как изменить версию Node.js, то вы на правильном пути. В этой статье мы расскажем вам о нескольких способах обновления Node.js на Windows и предоставим пошаговую инструкцию по каждому из них.
Независимо от того, что вам нужно обновить Node.js до последней стабильной версии или откатиться к предыдущей версии из-за совместимости с другими инструментами, мы поможем вам сделать это быстро и без лишних проблем. Продолжайте читать, чтобы узнать, как изменить версию Node.js на Windows.
Скачивание актуальной версии Node.js
Чтобы изменить версию Node.js на Windows, вам сначала необходимо скачать последнюю актуальную версию программы. Вот пошаговая инструкция по этому процессу:
- Откройте веб-браузер и перейдите на официальный сайт Node.js по адресу https://nodejs.org/en/download/.
- На главной странице вы увидите две вкладки: «LTS» (стабильная версия) и «Current» (текущая версия). Рекомендуется скачивать стабильную версию для большинства пользователей, но если вам требуется конкретная функциональность из актуальной версии, выберите «Current».
- Для Windows найдите соответствующую опцию (например, «Windows Installer») и нажмите на нее.
- Скачивание файла установки автоматически начнется. Дождитесь его завершения.
- Когда загрузка завершится, откройте загруженный файл (обычно это .msi файл).
- В открывшемся окне установщика выберите язык установки и нажмите «Next».
- Примите условия лицензионного соглашения и нажмите «Next».
- Выберите путь для установки Node.js, оставьте его по умолчанию (обычно это «C:\Program Files
odejs») и нажмите «Next». - Выберите компоненты, которые вы хотите установить. Если вы не знаете, оставьте все по умолчанию, и нажмите «Next».
- Установка начнется. Подождите, пока она будет завершена.
- После завершения установки нажмите «Finish».
Поздравляю! Теперь на вашем компьютере установлена актуальная версия Node.js.
Деинсталляция предыдущей версии Node.js
Прежде чем установить новую версию Node.js на компьютере, необходимо деинсталлировать предыдущую версию, чтобы избежать конфликтов.
Следуйте этим шагам, чтобы полностью удалить Node.js:
| Шаг | Инструкция |
|---|---|
| 1 | Откройте «Панель управления» в Windows. |
| 2 | Выберите «Программы и компоненты» или «Установка и удаление программ». |
| 3 | Найдите в списке установленных программ «Node.js» и щелкните на нем правой кнопкой мыши. |
| 4 | Выберите «Удалить» или «Изменить/Удалить». |
| 5 | Следуйте инструкциям деинсталлятора Node.js и дождитесь завершения процесса деинсталляции. |
| 6 | Убедитесь, что все файлы, связанные с предыдущей версией Node.js, были удалены. |
После того как вы полностью удалите предыдущую версию Node.js, вы будете готовы к установке новой версии.
Настройка переменных окружения
Перед тем как установить новую версию Node.js, необходимо настроить переменные окружения на вашем компьютере:
Шаг 1: Откройте Панель управления Windows и выберите «Система и безопасность».
Шаг 2: В разделе «Система» выберите «Дополнительные параметры системы».
Шаг 3: В открывшемся окне выберите вкладку «Дополнительно» и нажмите на кнопку «Переменные среды».
Шаг 4: В разделе «Системные переменные» найдите переменную с именем «Path» и нажмите на кнопку «Изменить».
Шаг 5: В окне «Изменение системных переменных» нажмите на кнопку «Создать».
Шаг 6: В поле «Имя переменной» введите «NODE_HOME».
Шаг 7: В поле «Значение переменной» введите путь к папке, где установлена новая версия Node.js (например, «C:\Program Files
Шаг 8: Нажмите «ОК», чтобы сохранить изменения.
Примечание: Если переменная «Path» уже содержит другие значения, то необходимо добавить новое значение, разделяя его от остальных точкой с запятой (;).
После настройки переменных окружения вы будете готовы установить и использовать новую версию Node.js на вашем компьютере.
Проверка установки новой версии Node.js
После успешной установки новой версии Node.js на вашем компьютере, вы можете проверить ее правильность, используя командную строку.
Для проверки, выполните следующие шаги:
| 1. | Откройте командную строку, нажав Win + R и введите cmd . |
| 2. | Введите команду node -v и нажмите клавишу Enter . |
Если в результате выполнения команды появится версия Node.js, которую вы установили, то у вас успешно установлена новая версия.
Например, если вы установили Node.js версии 14.16.1, то в командной строке вы увидите v14.16.1 или 14.16.1 .
Если же в результате выполнения команды вам выдается ошибка или появляется другая версия Node.js, проверьте правильность установки и повторите шаги установки сначала.
Обновление пакетного менеджера npm
После установки новой версии Node.js на вашем компьютере может понадобиться также обновить пакетный менеджер npm до последней версии. Это позволит вам использовать новейшие версии пакетов и интегрированные инструменты разработки.
Для обновления npm на Windows можно воспользоваться командной строкой:
| npm install -g npm | – обновление npm до последней версии |
После выполнения этой команды npm будет обновлен до последней версии.
Настройка командной строки для работы с новой версией Node.js
После установки новой версии Node.js на Windows, необходимо настроить командную строку для работы с этой версией. В данном разделе будет представлена пошаговая инструкция по настройке командной строки.
- Откройте командную строку на компьютере, нажав комбинацию клавиш Win + R . В появившемся окне введите команду cmd и нажмите Enter .
- Введите команду node -v , чтобы убедиться, что новая версия Node.js была успешно установлена. Если в результате выполнения данной команды выводится версия Node.js, значит установка прошла успешно.
- Далее, введите команду npm -v , чтобы проверить версию пакетного менеджера npm. Если выводится версия npm, это означает, что npm также был успешно обновлен вместе с новой версией Node.js.
- Теперь, когда вы убедились, что новая версия Node.js работает корректно, необходимо настроить командную строку, чтобы использовать именно эту версию.
- Введите команду where node в командной строке. В результате будет выведен путь к исполняемому файлу Node.js.
- Скопируйте путь к исполняемому файлу Node.js, который был выведен на предыдущем шаге.
- Нажмите комбинацию клавиш Win + X и выберите пункт «Система».
- В открывшемся окне системных настроек, нажмите на ссылку «Дополнительные параметры системы».
- Далее, нажмите на кнопку «Переменные среды».
- В разделе «Переменные среды пользователя» найдите переменную среды «PATH» и выберите ее.
- Нажмите на кнопку «Изменить», чтобы отредактировать значение переменной среды «PATH».
- В открывшемся окне редактирования значения переменной среды «PATH», убедитесь, что на новой строке не указан путь к исполняемому файлу Node.js, который вы скопировали на предыдущем шаге.
- Если путь к исполняемому файлу Node.js уже указан, проверьте, что разделитель между путями является точкой с запятой (;).
- Если путь к исполняемому файлу Node.js отсутствует, нажмите на кнопку «Новый» и вставьте скопированный путь к исполняемому файлу Node.js.
- После внесения изменений, нажмите кнопки «ОК», чтобы сохранить настройки переменных среды.
Теперь ваша командная строка настроена для работы с новой версией Node.js. Вы можете использовать команды node и npm без указания полного пути к исполняемым файлам и работать с новой версией Node.js по вашему желанию.