Как правильно обновить узел с помощью 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
gabrielperales
источник
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.

Elad
источник
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.

MrSegFaulty
источник