Заполните эту форму, чтобы высказать свое мнение и подписаться на обновления о ходе работы.
Обновления также будут публиковаться на странице авторского программного обеспечения в LinkedIn.
Microsoft/npm/Google рекомендовал менеджер версий Node.js для Windows .
Оригинальный nvm — это совершенно отдельный проект только для Mac/Linux. Этот проект использует совершенно другую философию и не является просто клоном nvm. Подробности указаны в разделе «Зачем нужен другой менеджер версий?» и в чем большая разница?.
Не можете спонсировать? Рассмотрите возможность номинации @coreybutler на звезду Github. |
Возникли проблемы? См. вики по общим проблемам.
Ищу обратную связь:Мы работаем над Runtime (rt), преемником NVM для Windows. Пожалуйста, внесите свой вклад, потратив минуту на заполнение этой формы. Спасибо! |
Управляйте несколькими установками node.js на компьютере под управлением Windows.
tl;dr Аналогичен (не идентичен) nvm, но для Windows. Имеет установщик. Загрузите сейчас!
Это всегда был менеджер версий узла, а не менеджер io.js, поэтому обратной поддержки для io.js нет. Поддерживается узел 4+. Помните, что при запуске nvm install
или nvm use
Windows обычно требуются права администратора (для создания символических ссылок). Чтобы установить последнюю версию Node.js, запустите nvm install latest
. Чтобы установить последнюю стабильную версию, запустите nvm install lts
.
Бывают ситуации, когда возможность переключения между разными версиями Node.js может оказаться очень полезной. Например, если вы хотите протестировать разрабатываемый модуль с использованием последней новейшей версии, не удаляя стабильную версию узла, эта утилита может помочь.
Самый простой (рекомендуемый) способ обеспечить правильную работу NVM для Windows — удалить все предыдущие установки Node перед установкой NVM для Windows. Это позволяет избежать всех ошибок, перечисленных ниже. Однако; Возможно, вы не захотите уничтожать свою установку Node, если вы ее сильно настроили. NVM для Windows может взять на себя управление существующей установкой, но здесь есть свои нюансы (полностью зависящие от разрешений пользователя, запускающего установку). Если у вас есть учетная запись администратора, относительно безопасно установить NVM для Windows перед удалением исходной версии Node. Если вы работаете в закрытой среде, например в корпоративной среде Active Directory, где установка/удаление контролируется групповой политикой, вам действительно следует рассмотреть возможность удаления исходной версии Node перед установкой NVM4W.
Проблемы с разрешениями . По соображениям безопасности Windows не позволяет приложению одного поставщика «удалять» приложение другого поставщика. Официальный установщик NVM4W попытается взять на себя управление существующей установкой Node., но фактически не сможет удалить исходную версию Node.js. Чтобы обойти эту проблему, установщик NVM для Windows пытается скопировать исходные установочные файлы Node.js в корень NVM. Сюда входят глобальные модули и конфигурации npm. После завершения этого процесса исходную установку Node.js можно будет удалить без потери данных.
Проблемы с установкой PATH Если вы попытаетесь настроить NVM_SYMLINK
для использования существующего каталога (например, C:Program Filesnodejs
), это не удастся, поскольку символическая ссылка не может перезаписать физический каталог. Это не проблема, если вы выберете другой путь символической ссылки (например, C:nvmnode
).
Конфликты PATH Если вы не удалите исходную версию, может показаться, что nvm use
вообще ничего не дает. Запуск node -v
всегда будет показывать исходную версию установки. Это связано с конфликтом PATH
, который возникает, когда одно и то же приложение устанавливается несколько раз. В NVM4W 1.1.11+ запустите nvm debug
, чтобы определить, есть ли у вас конфликт PATH
.
Для простоты мы рекомендуем удалить все существующие версии Node.js перед использованием NVM для Windows. Удалите все существующие каталоги установки Node.js (например, %ProgramFiles%nodejs
), которые могут остаться. Сгенерированная NVM символическая ссылка не перезапишет существующий (даже пустой) установочный каталог.
? Резервное копирование любой глобальной конфигурации npmrc
? (например, %AppData%npmetcnpmrc
)
Альтернативно скопируйте настройки в конфигурацию пользователя %UserProfile%.npmrc
. Удалите существующее место установки npm (например, %AppData%npm
), чтобы предотвратить глобальные конфликты модулей.
Используйте последнюю версию установщика (входит в комплект деинсталлятора). Альтернативно, следуйте руководству по ручной установке.
Если NVM4W не работает сразу после установки, перезагрузите терминал/powershell (а не весь компьютер).
После установки переустановку глобальных утилит (например, Yarn) необходимо будет выполнить для каждой установленной версии узла:
nvm use 14.0.0 npm install -g yarn nvm use 12.0.1 npm install -g yarn
Начиная с версии 1.1.8 имеется утилита обновления, которая автоматизирует процесс обновления.
Чтобы обновить nvm-windows , запустите новый установщик. Он безопасно перезапишет файлы, которые необходимо обновить, не затрагивая ваши установки node.js. Убедитесь, что вы используете одну и ту же папку установки и символической ссылки. Если вы изначально установили программу в папку по умолчанию, вам просто нужно нажимать «Далее» в каждом окне, пока она не завершится.
nvm-windows работает в оболочке администратора . Вам нужно будет запустить powershell
или командную строку от имени администратора, чтобы использовать nvm-windows.
NVM для Windows — это инструмент командной строки. Просто введите nvm
в консоли для получения помощи. Основные команды:
nvm arch [32|64]
: показать, работает ли узел в 32- или 64-битном режиме. Укажите 32 или 64, чтобы переопределить архитектуру по умолчанию.
nvm debug
: проверьте процесс NVM4W на наличие известных проблем.
nvm current
: Отобразить активную версию.
nvm install <version> [arch]
: Версия может быть конкретной версией: «latest» для последней текущей версии или «lts» для самой последней версии LTS. При необходимости укажите, следует ли устанавливать 32- или 64-разрядную версию (по умолчанию — системная версия). Установите для параметра [arch] значение «all», чтобы установить 32- и 64-битные версии. Добавьте --insecure
в конец этой команды, чтобы обойти проверку SSL удаленного сервера загрузки.
nvm list [available]
: список установок node.js. Введите available
в конце, чтобы отобразить список версий, доступных для загрузки.
nvm on
: включить управление версиями node.js.
nvm off
: отключить управление версиями node.js (ничего не удаляет).
nvm proxy [url]
: установите прокси-сервер для загрузки. Оставьте [url]
пустым, чтобы увидеть текущий прокси. Установите для [url]
значение «none», чтобы удалить прокси.
nvm uninstall <version>
: удалить определенную версию.
nvm use <version> [arch]
: переключиться на использование указанной версии. При желании используйте latest
, lts
или newest
. newest
— последняя установленная версия. При желании укажите 32/64-битную архитектуру. nvm use <arch>
продолжит использовать выбранную версию, но переключится в 32/64-битный режим. Информацию об использовании use
в определенном каталоге (или использовании .nvmrc
) см. в выпуске №16.
nvm root <path>
: укажите каталог, в котором nvm должен хранить различные версии node.js. Если <path>
не установлен, будет отображаться текущий корень.
nvm version
: отображает текущую версию NVM для Windows.
nvm node_mirror <node_mirror_url>
: установите зеркало узла. Люди в Китае могут использовать https://npmmirror.com/mirrors/node/
nvm npm_mirror <npm_mirror_url>
: установите зеркало npm. Люди в Китае могут использовать https://npmmirror.com/mirrors/npm/
Обратите внимание, что любые установленные вами глобальные модули npm не используются различными установленными вами версиями node.js. Кроме того, некоторые модули npm могут не поддерживаться используемой вами версией узла, поэтому во время работы учитывайте особенности своей среды.
Пользователи сообщают о некоторых проблемах при использовании антивируса, в частности McAfee. Похоже, антивирусное программное обеспечение манипулирует доступом к движку VBScript. Подробности и решение см. в выпуске № 133.
Версия 1.1.8 не имеет кодовой подписи , но все остальные версии подписаны Ecor Ventures LLC/Author.io. Это должно помочь предотвратить ложные срабатывания большинства антивирусных программ.
Код версии 1.1.8+ не был подписан из-за истекшего срока действия сертификата (причины см. в примечаниях к выпуску). Версия 1.1.9 — это код, подписанный благодаря Аджёну, который спонсировал новый сертификат.
тлдр; npm i -g yarn
Подробности смотрите в вики.
Установите go с http://golang.org.
Скачать исходный код / Git Clone репозитория
Измените GOARCH на amd64 в build.bat, если вам хочется создать 64-битный исполняемый файл.
Запустите командную строку Windows и измените каталог на каталог проекта.
Выполните go get github.com/blang/semver
Выполните go get github.com/olekukonko/tablewriter
Выполнить build.bat
Проверьте каталог dist
на наличие созданной программы установки.
Существует несколько менеджеров версий node.js. Такие инструменты, как nvm и n, работают только на Mac OSX и Linux. Пользователи Windows остались в стороне? Нет. И nvmw, и nodist разработаны для Windows. Итак, зачем еще один менеджер версий для Windows?
Архитектура большинства менеджеров версий узлов для Windows основана на файлах .bat
, которые выполняют некоторые хитрые трюки для установки или имитации переменных среды. Некоторые из них используют сам узел (после его загрузки), что достойно восхищения, но чревато проблемами. Примерно в узле 0.10.30 структура установки немного изменилась, в результате чего некоторые из них просто перестали работать с чем-то новым.
Кроме того, некоторым пользователям сложно установить эти модули, поскольку для этого требуется немного больше знаний о структуре установки узла. Я считаю, что если бы людям было проще переключаться между версиями, люди могли бы потратить время на тестирование своего кода в предыдущих и будущих версиях... что является просто хорошей практикой.
Прежде всего, эта версия nvm не зависит от узла. Он написан на Go, что представляет собой гораздо более структурированный подход, чем взлом ограниченного файла .bat
. Он не зависит от наличия существующей установки узла. Go предлагает возможность создать версию для Mac/Linux на той же базе кода. Фактически, это уже происходит.
Механизм управления также совершенно иной. Существует два основных способа поддержки установок с несколькими узлами с возможностью горячего переключения. Первый — изменить системный PATH
каждый раз при переключении версий или обойти его, используя файл .bat
для имитации исполняемого файла узла и соответствующего перенаправления. Мне это всегда казалось немного хакерским, и в результате такой реализации возникли некоторые странности.
Второй вариант — использовать символическую ссылку. Эта концепция требует помещения символической ссылки в системную переменную PATH
, а затем обновления ее цели до каталога установки узла, который вы хотите использовать. Это простой подход, и, похоже, именно его рекомендуют люди... до тех пор, пока они не осознают, насколько болезненны символические ссылки в Windows. Вот почему этого не произошло раньше.
Чтобы создать/изменить символическую ссылку, вы должны работать от имени администратора и обойти Windows UAC (эту надоедливую подсказку). К счастью, эту проблему я уже решил с помощью некоторых вспомогательных скриптов в Node-Windows. В результате NVM для Windows поддерживает одну символическую ссылку, которая помещается в системный PATH
только во время установки. Переключение на разные версии узла — это вопрос переключения цели символической ссылки. В результате эта утилита не требует запуска nvm use xxx
каждый раз, когда вы открываете окно консоли. Когда вы запускаете nvm use xxx
, активная версия узла автоматически обновляется во всех открытых окнах консоли. Он также сохраняется между перезагрузками системы, поэтому вам нужно использовать nvm только тогда, когда вы хотите внести изменения.
NVM для Windows поставляется с установщиком, который является побочным продуктом моей работы над веб-сервером Fenix.
В целом, этот проект объединяет некоторые идеи, несколько проверенных в боях частей других модулей и поддержку новых версий узла.
NVM для Windows распознает «последние» версии, используя список, предоставленный проектом Node. Версия 1.1.1+ использует этот список. До того, как этот список появился, я собирал релизы и предоставлял его как отдельный канал данных. Этот список использовался в версиях 1.1.0 и более ранних, но сейчас устарел.
Мне это было нужно, просто и ясно. Кроме того, очевидно, что поддержка нескольких версий не будет реализована в ядре узла. Это также был повод поиграть в го.
Я выбрал Go, потому что он кроссплатформенный, кажется менее накладным, чем Java, и существует дольше, чем думает большинство людей. Более того, мне хотелось поэкспериментировать с этим. Меня спросили, почему я не написал это на Node. Попытка написать инструмент с помощью инструмента, который вы пытаетесь установить, для меня не имеет смысла. В результате требования моего проекта были простыми... это не Node. Node будет продолжать развиваться и меняться. Если вам нужно напоминание об этом, помните io.js, Ayo, все критические изменения между 4.xx и 6.xx и переход на ES-модули в 12+. Изменения неизбежны в мире программного обеспечения. JavaScript чрезвычайно динамичен.
Спасибо всем, кто отправлял вопросы на Github и за его пределами, вносил предложения и в целом помогал сделать этот проект лучше. Особая благодарность
@vkbansal, который предоставил значительную обратную связь на ранних этапах выпуска.
@rainabba и @sullivanpt за интеграцию поддержки Node v4.
@shadow, который решил давнюю проблему с экранированием пробелов в именах путей (# 355).
Аджён, который спонсировал сертификат подписи кода в конце 2021 года.