Используйте несколько версий Node в Windows одновременно

На SO есть несколько вопросов по этому поводу, но ни один из них не смог решить мою проблему. Существует проект под названием NVM для Windows https://github.com/coreybutler/nvm-windows который решает эту проблему путем переключения между несколькими узлами js. Чтобы использовать его, нам нужна командная строка с повышенными правами (права администратора), но у меня есть корпоративный ноутбук, и у меня нет прав администратора, и они не дадут мне права администратора в cmd, потому что тогда пользователь сможет делать что угодно. Мне приходится работать над тремя разными проектами angular с разными версиями angular cli и разными узлами.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
337
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете загрузить и разархивировать различные версии узлов в своем домашнем каталоге (%USERPROFILE%). Затем вам просто нужно обновить переменную PATH, чтобы она указывала на правильный каталог. Чтобы было проще в Windows, добавьте файлы в корень каждого проекта:

  • start.bat
    set PATH=%USERPROFILE%\you-nodejs-path;%PATH%
    npm run start
  • install.bat
    set PATH=%USERPROFILE%\you-nodejs-path;%PATH%
    npm install

И так далее. Я установлю зависимости в правильные каталоги, это каким-то образом делает nvm.

Ответ принят как подходящий

Поэтому я придумал собственное решение этой проблемы, потому что ни одно из существующих сообщений в блоге и вопросов SO мне не помогло. Я думаю, что это решение даже лучше, чем любой существующий сторонний пакет, поскольку вы не зависите от какого-либо стороннего установщика или сценария, и его чрезвычайно легко реализовать.

Сначала перейдите по адресу https://nodejs.org/en/download/package-manager и загрузите готовые двоичные файлы нужной версии узла.

После этого перейдите в C:\Users<имя-пользователя>\Documents\ и создайте папку nvm(любое имя). Извлеките содержимое загруженного zip-файла в эту папку. Будет создана папка «node-v20.13.1-win-x64» (имя версии загруженного узла). В этой папке у вас будут все файлы, необходимые для запуска node.

После этого создайте файл сценария PowerShell с именем «node-profile.ps1» и вставьте в него следующую команду.

#$env:PATH = 'C:\Users\<user-name>\Documents\nvm\node-v22.1.0'
$env:PATH = 'C:\Users\<user-name>\Documents\nvm\node-v20.13.1'

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

После этого откройте проект в коде Visual Studio (или в предпочитаемом вами редакторе) и в терминале запустите этот файл node-profile.ps1 вот так

C:\Users\<user-name>\Documents\nvm\node-profile.ps1

Теперь для этого терминала временно (пока вы его не закроете) вашей версией узла будет та, которую вы установили в файле node-profile.ps1, то есть версия 20.13.1 для этого примера. Вы можете проверить версию, набрав команду node -v, и она выдаст вам ту, которую вы только что установили.

Для второго проекта откройте его в другом редакторе кода и установите желаемую версию узла в этом терминале, раскомментировав нужный путь в файле node-profile.ps1 и прокомментировав остальные, и для этого терминала у вас будет другая версия узла.

Теперь вы можете запустить любой проект Angular, поддерживаемый этой версией. С помощью этого метода вы даже можете запускать устаревшие проекты Angular.

Прелесть этого метода в том, что с его помощью вы можете использовать несколько версий узлов одновременно, я имею в виду действительно одновременно.

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

Надеюсь это поможет.

Другие вопросы по теме