Як правильно оновити вузол за допомогою 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/isissue/811
jhuesos

5
До nvm ls-remoteви можете побачити всі випуски.
Даніель

7
Це працює для мене: nvm install node --reinstall-packages-from=$(nvm current). Це оновить Node.js до останньої версії та перевстановить глобальні пакети npm з будь-якої попередньої версії.
цифрост

Якщо не вдалося видалити, скористайтеся nvm deactivateта повторіть спробу.
izilotti

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

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

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

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

Для встановлення останньої lts(довгострокової підтримки) версії вузла та перевстановлення старих пакетів версій просто запустіть наступну команду.

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

Ось GIF для підтримки цієї відповіді. нвм


Не можу змусити цього працювати - я щойно отримую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

відповідь gabrielperales правильна, за винятком того, що він пропустив знак "=" наприкінці. якщо ви не поставите знак "=", тоді буде встановлена ​​нова версія вузла, але пакунки не будуть встановлені.

джерело: 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.