Как вы обновляете npm до последней версии? [Дубликат]

У этого вопроса уже есть ответ здесь: Как установить последние версии NodeJS и NPM? 19 ответов

У меня проблемы с npm в ящике Vagrant, который я настраиваю. Я заметил, что версия npm несколько старая, поэтому я хотел проверить проблему с последней версией.

Насколько я понимаю, вы должны иметь возможность обновлять npm с помощью npm install -g npm, но команда не влияет на используемый npm:

vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ sudo npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@2.1.12 /usr/local/lib/node_modules/npm
vagrant@box:~$ npm -v
1.3.10

Я также попытался использовать n (как предложено в разделе «Как я могу обновить nodeJS до последней версии?») для обновления, но он не влияет ни на npm, ни на node:

vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$
vagrant@box:~$ sudo npm install -g n
/usr/bin/n -> /usr/lib/node_modules/n/bin/n
n@1.2.9 /usr/lib/node_modules/n
vagrant@box:~$ sudo n stable

     install : v0.10.33
       mkdir : /usr/local/n/versions/0.10.33
       fetch : http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz
   installed : v0.10.33

vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$ npm -v
1.3.10

Что мне нужно сделать для обновления npm до последней версии?

1
задан 13 April 2017 в 15:23

9 ответов

Вы можете обновить nodejs с помощью самой npm, PPA или вручную.

npm:

Проверьте текущую версию:

node -v

После этого очищается ваш кеш.

sudo npm cache clean -f

Установить n

sudo npm install -g n

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

sudo n 0.8.11

Или просто скажите, чтобы установить последнюю стабильную версию.

sudo n stable

Чтобы проверить, действительно ли он обновлен, запустите:

node -v

npm :

[d11 ] Другой вариант - установить его через PPA с помощью chris-lea;

sudo add-apt-repository ppa:chris-lea/node.js  
sudo apt-get update  
sudo apt-get install nodejs

Этот PPA поддерживает следующие дистрибутивы: Utopic (14.10), Trusty (14.04), Saucy (13.10), Raring (13.04) ), [10].

В ручном режиме:

Вы всегда можете обновить его вручную (12.04), Точный (12.04), Oneiric (11.10), Natty (11.04), Lucid PPA от chris-lea последняя версия и установка ее самостоятельно!

Вручную :

Обновление Node.js через NPM Основы Node.js: как обновить версию Node.js | The Holmes Office node.js: chris lea node.js - downloads
33
ответ дан 24 May 2018 в 00:54
  • 1
    Я знаю, что вы пытаетесь помочь, но это именно то, что он говорит в моем вопросе. – Oliver Salzburg 17 December 2014 в 14:42
  • 2
    @OliverSalzburg, мой плохой, я видел вышеупомянутый пост, и мне было шумно читать. Итак, я только начал публиковать, свой собственный ответ. – blade19899 17 December 2014 в 14:46
  • 3
    @OliverSalzburg, я обновил свой ответ с несколькими вариантами о том, как обновить! – blade19899 17 December 2014 в 14:55
  • 4
    потрясающе, используя n хорошо для меня (debian sid) – Michel Feldheim 4 August 2015 в 16:55
  • 5
    Это, безусловно, правильный ответ. Меня это раздражает, когда вопросные плакаты отвечают на собственный вопрос «НЕПРАВИЛЬНО», а затем отмечают его как принятый. Они должны быть наказаны! – Twifty 22 May 2017 в 18:53

Когда вы сначала выполняете npm install -g npm, оболочка (Bash) будет искать npm в вашем пути, найдите /usr/bin/npm, установленную системным пакетом, а затем используйте его для установки новой версии npm. Новая версия будет установлена ​​в /usr/local/bin/npm.

Теперь ваш путь должен иметь /usr/local/bin/ до /usr/bin/, поэтому вы могли бы подумать, что теперь он подберет обновленную версию в /usr/local/bin/, справа ? Неверно.

После первого раза, когда он ищет их, Bash выполнит исполняемые пути CACHE, поэтому, когда вы скажете npm во второй раз, он все еще использует кешированную версию, которую он сначала нашел как /usr/bin/npm.

Чтобы сообщить Bash, чтобы очистить этот кеш и снова просмотреть путь, вам нужно сделать hash -r.

После установки npm и при этом моя оболочка подхватила новая версия npm просто прекрасна.

Спасибо

27
ответ дан 24 May 2018 в 00:54

Обновите NPM до последней версии в одной команде

Чтобы обновить или обновить версию вашего npm, просто введите терминал:

sudo npm install npm@latest -g

Как указано в нижнем колонтитуле Документация NPM

15
ответ дан 24 May 2018 в 00:54

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

Узнайте, где установлена ​​npm и перейдите в эту папку

# Below command shows the destination (remove sed pipe to see the full path of npm-cli)
whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{19\}$//'

# Go in there and install it manually. In my case it was the folder below... 
# NOTE: on mac its in /usr/local/lib
cd /usr/lib
sudo npm install npm@latest

[d2 ] Узнайте, где установлена ​​npm и перейдите в эту папку

cd `whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{18\}$//'`; cd ..; sudo npm install npm@latest
12
ответ дан 24 May 2018 в 00:54
  • 1
    Это бесплатно для меня (в отличие от других ответов), однако npm не обновляется – PandaWood 18 February 2016 в 17:42
  • 2
    если вы sudo используете папку npm корневой учетной записи, помните об этом. Если вы хотите узнать, где находится ваш npm, просто введите: whereis npm | xargs readlink -f. Возможно, вы просто обновили неправильный пакет. Я добавил некоторую информацию в свой ответ. – proxylittle 18 February 2016 в 18:25

Любой трюк, который вы делаете, не использует Git, я рекомендую запустить их в Composer terminal. Это, безусловно, будет работать. Это сделал для меня npm install npm -g.

1
ответ дан 24 May 2018 в 00:54

Чтобы обновить npm, вам нужно обновить nodejs до последней версии, которая включает в себя npm

. В debian stretch и jessie используйте этот скрипт:

#install prerequisites
apt-get install apt-transport-https curl git lsb-release -y

#Install NodeJS from external repositories
DISTRO=$(lsb_release -c -s)
if [ "$DISTRO" == "stretch" ]
then
  DISTRO="jessie"
fi

if curl -f "https://deb.nodesource.com/node_7.x/dists/$DISTRO/Release" >/dev/null
then
  curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
  echo "deb https://deb.nodesource.com/node_7.x $DISTRO main" > /etc/apt/sources.list.d/nodesource.list
  echo "deb-src https://deb.nodesource.com/node_7.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list
  apt-get update
  # comment out the following line, if you installed nodejs 7 already (check with `apt-cache policy nodejs`)
  apt-get remove nodejs nodejs-legacy npm
  apt-get install nodejs -y
else
  echo -e "Your distribution is not supported by NodeJS. \nYou have to install a recent NodeJS version (>=4) manually. "
fi

В Ubuntu вы можете использовать этот скрипт с https://deb.nodesource.com:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

см. Источник сначала в https://deb.nodesource.com

1
ответ дан 24 May 2018 в 00:54

Обновление до nodejs v0.12.7

 # Note the new setup script name for Node.js v0.12
 curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

 # Then install with:
 sudo apt-get install -y nodejs

Источник from nodesource.com

0
ответ дан 24 May 2018 в 00:54

Я столкнулся с проблемой. Моя текущая версия npm была 3.3.12, но я попробовал sudo npm install npm -g, sudo npm update npm -g .. ничего не работало. While I npm --version Я всегда получаю 3.3.12. Я искал каталоги в своем Ubuntu 15.04 и нашел две версии npm в разных каталогах.

v3.3.12 в /usr/local/lib/node_modules/npm v3.6 в /usr/lib/node_modules/npm

Итак, я сделал копию 3.3.12 с mv npm npm_3312, когда я был в старом каталоге npm. Затем я сделал sudo cp -r npm /usr/local/lib/node_modules/, когда был в каталоге / usr / lib / node_modules. Я сделал свой npm --version, и я получил 3.6.0

: D

0
ответ дан 24 May 2018 в 00:54

Я не вижу причин переустанавливать что-то, что там готово, просто используйте update -g, встроенный в диспетчер пакетов, чтобы обновить себя:

$ npm -v
2.15.1
$ sudo npm update -g npm
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@3.10.9 /usr/local/lib/node_modules/npm
$ npm -v
3.10.9

Убедитесь, что глобальный флаг update -g находится перед пакетами. У меня были проблемы в прошлом, когда npm не регистрировал флаг после списка пакетов.

0
ответ дан 24 May 2018 в 00:54

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

Похожие вопросы: