你如何更新npm到最新版本?

我正在设置的Vagrant框中遇到npm问题。 我注意到npm版本npm ,所以我想用最新版本检查问题。

我的理解是您应该能够使用npm install -g 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 -gn /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更新到最新版本?

我仍然不明白为什么 ,但我必须运行npm install -g 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 vagrant@box:~$ sudo npm install -g npm /usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js npm@2.1.12 /usr/lib/node_modules/npm vagrant@box:~$ npm -v 2.1.12 

您可以使用npm本身,PPA或手动更新nodejs。

npm

检查您当前的版本:

 node -v 

以下内容清除缓存。

 sudo npm cache clean -f 

安装n

 sudo npm install -gn 

您可以告诉它安装特定版本,如下所示:

 sudo n 0.8.11 

或者只是告诉它安装最新的稳定版本。 两者都可能需要一段时间。

 sudo n stable 

要查看它是否实际升级,请运行:

 node -v 

PPA

其他选择是通过chris-lea的PPA安装它;

 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),Quantal(12.10),Precise(12.04),Oneiric(11.10),Natty(11.04),Lucid(10.04) )。

手动

您可以随时通过手动下载最新版本并自行安装来更新它!


参考

  • 通过NPM升级Node.js.

  • Node.js基础:如何升级Node.js版本 福尔摩斯办公室

  • node.js:chris lea

  • node.js – 下载

当您第一次执行npm install -g npm ,shell(Bash)将在您的路径中搜索npm ,找到系统包安装的/usr/bin/npm ,然后使用它来安装新版本的npm 。 新版本将安装在/usr/local/bin/npm

现在,你的路径应该有/usr/local/bin/ BEFORE /usr/bin/ ,所以你会认为它现在会在/usr/local/bin/获取更新版本,对吗? 错误。

Bash会在第一次搜索它们之后执行CACHE可执行路径,所以当你第二次说npm时,它仍然使用它最初找到的缓存版本为/usr/bin/npm

要告诉Bash清除此缓存并再次查看路径,您必须执行hash -r

在安装了npm并执行此操作后,我的shell获得了新版本的npm就好了。

谢谢

在一个命令中将NPM更新为最新版本

要升级或更新您的npm版本,只需输入终端:

 sudo npm install npm@latest -g 

如NPM文档的页脚所述

大多数时候我无法使用global命令升级它。 然而,对我来说有用的是从所有系统节点模块的源代码升级包:

找出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 

看到每个人(特别是懒人)强大的单行

 cd `whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{18\}$//'`; cd ..; sudo npm install npm@latest 

你做的任何技巧,不要使用Git ,我建议在Composer terminal运行它们。 它肯定会奏效。 它通过npm install npm -g为我做了。

要升级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://github.com/nodesource/distributions/blob/master/deb/setup_7.x上查看源代码

升级到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 

来自nodesource.com的消息来源

我正面临着这个问题。 我当前的npm版本是3.3.12但是我尝试了sudo npm install npm -gsudo npm update npm -g ..什么都没有用..而我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

所以当我在旧的npm目录中时,我确实用mv npm npm_3312制作了3.3.12的副本。 然后我在’/ usr / lib / node_modules’目录下做了sudo cp -r npm /usr/local/lib/node_modules/ ..我做了我的npm --version而且我得到了3.6.0

:d

我没有看到任何理由重新安装那里准备好的东西,只需使用内置在包管理器中的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 

确保全局标志-g在包之前。 我在过去遇到过问题,npm没有在包列表后注册标志。