Как правильно обновить узел с помощью nvm


231

Можно ли выполнить обновление nodeпрямо на месте, вместо ручной установки последней стабильной версии?

Я установил версию node.js5.0 с nvm, но теперь я хочу обновить ее до 5.4. Я пытаюсь избежать переустановки всех моих глобальных пакетов вручную ( например , запустив npm install -g grunt-cli bower yo yoman-angular-generator blabla blablablabla...).

Ответы:


328

Это может работать:

nvm install NEW_VERSION --reinstall-packages-from=OLD_VERSION

Например:

nvm install 6.7 --reinstall-packages-from=6.4

затем, если вы хотите, вы можете удалить свою предыдущую версию с помощью:

nvm uninstall OLD_VERSION

Где, в вашем случае, NEW_VERSION = 5.4 OLD_VERSION = 5.0

Или попробуйте:

nvm install stable

1
Доза, используя nvm install stableудалить все установленные пакеты, включая установленный узел, а скорее обновить их?
Сайед

1
на самом деле, это больше не работает. Существует проблема с npm: github.com/creationix/nvm/issues/811
jhuesos

5
По ним nvm ls-remoteможно посмотреть все релизы.
Даниил

7
Это работает для меня nvm install node --reinstall-packages-from=$(nvm current). Это обновит Node.js до последней версии и переустановит глобальные пакеты npm из предыдущей версии.
Cyfrost

Если вам не удалось удалить, используйте nvm deactivateи попробуйте снова.
Изилотти

185

Вы можете более просто выполнить одну из следующих команд:

Последняя версия :
nvm install node --reinstall-packages-from=node
стабильная (LTS) версия :
nvm install lts/* --reinstall-packages-from=node

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

Редактировать - добавлена ​​команда для установки версии LTS согласно комментарию @ m4js7er.


20
Если вы хотите обновить до последней стабильной версии (LTS - рекомендуется для большинства пользователей), то вы должны запустить: nvm install lts/* --reinstall-packages-from=node. После этого вы можете очистить свои версии с nvm uninstall [old version]. Вы можете перечислить все установленные версии с nvm ls.
m4js7er

Дважды подумайте, прежде чем делать --reinstall-packages-from=nodeВы можете использовать разные глобальные среды для версий 6, 8 и 10.
contributorpw

1
Я связал команду, nvm install lts/* --reinstall-packages-from=nodeно она Version 'lts/*' not found - try 'nvm ls-remote' to browse available versions.вызвала ошибку, сказав, что я использую версию NVM 0.30.1, возможно, мой NVM слишком старый. Я в конечном итоге вручную заменить lts/*на, 10.15.2/*чтобы заставить его работать.
Чжан

16

Simple ДВА простых решения:

Чтобы установить последнюю версию узла и переустановить пакеты старой версии, просто выполните следующую команду.

nvm install node --reinstall-packages-from=node

Чтобы установить последнюю ltsверсию (долгосрочной поддержки) версии узла и переустановить пакеты старой версии, просто выполните следующую команду.

nvm install --lts /* --reinstall-packages-from=node

Вот GIF, чтобы поддержать этот ответ. NVM


Не могу заставить это работать - я просто получаюIf --reinstall-packages-from is provided, it must point to an installed version of node.
wickywills

@wickywills "узел: это устанавливает последнюю версию узла", возможно, у вас была установлена ​​LTS или конкретная версия, и, следовательно, nodeона не указала на последнюю установленную версию. Или вам нужно обновить nvm.
iBaff,

10

если у вас 4.2 и вы хотите установить 5.0.0, тогда

nvm install v5.0.0 --reinstall-packages-from=4.2

ответ габриэлпералов верен, за исключением того, что он пропустил знак "=" в конце. если вы не поставите знак «=», будет установлена ​​новая версия узла, но пакеты не будут установлены.

источник: sitepoint


2

Node.JS для установки новой версии.

Шаг 1: установка NVM

npm i -g nvm

Шаг 2: NODE Установка последней версии

nvm install *.*.*(NodeVersion)

Шаг 3: выбранная версия узла

nvm use *.*.*(NodeVersion)

финиш


0

Псевдоним Bash для обновления текущей активной версии:

alias nodeupdate='nvm install $(nvm current | sed -rn "s/v([[:digit:]]+).*/\1/p") --reinstall-packages-from=$(nvm current)'

Часть sed -rn "s/v([[:digit:]]+).*/\1/p"преобразует выходные данные nvm currentтак, что возвращается только основная версия узла, то есть: v13.5.0-> 13.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.