1.Node.js和NPM安装的问题
我已经安装了Node.js以及npm,其中npm用于管理额外的模块。
那么如何将Node.js和我使用的那些模块更新到最新版本呢?
可以直接使用npm完成操作吗?或者我必须删除并重新安装Node.js和npm才能获得下一个版本?
我是遵照这篇文章https://github.com/joyent/node/wiki/Installation(步骤3a)来操作的。
2.常用的解决方法: npm update
请参阅update
命令的文档:
npm update [<name> [<name> ...]]
这个命令将更新列出的所有包到最新版本(由标签配置指定),它还会自动安装缺少的包。
另外,请参阅FAQ:
如何更新npm?
npm install -g npm
注意这个命令会删除您当前的npm版本。如果在Mac系统上,请使用命令:sudo npm install -g npm
。
您还可以通过执行 npm update 而不使用任何参数,或者执行
npm update -g
来更新所有过时的程序包。
要更新Node.js本身,建议您使用nvm, Node版本管理器。
3.极简主义者的解决思路
我发现在David Walsh的博客上,更新节点的方法非常简单:可以通过安装n
来实现:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
它将安装当前稳定版本的node
。不过,这个稍显tricky, 还是建议使用nvm
。
4.Windows上的解决方法
我明白这个问题是关于linux机器上的Node.js和NPM,但是实际上也有人正在寻找Windows上的解决方案。经过大量的网上搜索冲浪,都没有找到一个直接的解决方案。直到我试着去了网站nodejs site,然后点击主页上的下载按钮并执行安装程序。
非常幸运的是,居然有效。通过点击几下’Next’按钮,我得到了最新的0.8.15 node.js版本,并正常运行在我的Windows-7机器上。希望这个方法能帮到其他的Windows-7用户!
5.几种不同的解决思路
我们都知道,NPM目前与Node.js是捆绑在一起的,这意味着如果已经安装了node
,那么也安装了npm
。通常有几种方法都可以用于保持Node.js和NPM的最新状态,我们需要使用以下版本管理器之一:
Homebrew
如果你使用Mac系统,可以使用Homebrew。使用brew安装NodeJS和NPM:
$ brew install node
之后你可以使用更新命令:
$ brew update && brew upgrade node
NPM也将更新。
如果需要,可以使用命令switch
转换到以前的版本,例如:
$ brew switch node 0.10.26
要安装brew到您的Mac:
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
N
n跟rvm
(Ruby Version Manager:Ruby版本管理)非常相似,可用于管理和更新node/npm
版本。
轻松安装Node.js版本:
$ n 0.10.26
$ n 0.8.17
$ n 0.9.6
使用/安装最新的官方版本:
$ n latest
使用/安装稳定正式版本:
$ n stable
切换到以前使用的版本:
$ n prev
如果要查看已安装Node列表,只需从命令行运行n
,输出结果如下所示:
$ n
0.10.26
• 0.8.17
0.9.6
点(•)表示它是当前活动的版本。要从列表中选择节点版本,使用up
和down
箭头,并使用enter
激活。
n
这个程序包采用纯linux shell
语言编写,可作为npm模块(包含package.json
)使用,所以一旦安装了Node.js,就可以通过npm
来安装/更新n
:
$ npm install -g n
NVM
nvm也跟RVM
一样,命令名称和用法非常近似。
要使用nvm
下载、编译和安装最新v0.10.x版本的Node.js:
$ nvm install 0.10
切换到已安装的版本:
$ nvm use 0.10
也可以在项目根文件夹中创建一个包含版本号的.nvmrc
文件;然后运行以下命令切换到指定的版本:
$ nvm use
或者你可以运行这个命令:
$ nvm run 0.10
如果想查看已经安装了哪些版本,请使用:
$ nvm ls
要安装nvm
本身,可以使用cURL
来执行安装脚本(需要git
):
$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh
或wget
:
$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh
补充说明一下:
所有这些我在MacOSX和Linux上使用的方法,不一定适用于在Windows上管理Node.js版本。
5.其他方案一
使用如下命令,更新npm很容易:
npm install npm@latest -g
6.其他方案二
Windows用户的升级
Windows用户应在npm维基中阅读Troubleshooting > Upgrading on Windows。
使用PowerShell的Windows 10系统的升级
上面的链接 Troubleshooting#upgrading-on-windows指向一个github页面npm-windows-upgrade,下面的解决方法引用了readme文件。我使用Node v5.7.0和powershell(PowerShell版本5.0.10586.122),成功从npm 2.7.4升级到了npm 3.9.3。
首先,确保您可以从PowerShell运行以下命令来在系统上执行脚本。要以管理员身份运行PowerShell,依次单击开始、搜索PowerShell、右键单击PowerShell,然后选择以管理员身份运行。
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
然后,要安装和使用这个升级工具,运行(也可以从PowerShell或cmd.exe):
npm install --global --production npm-windows-upgrade
npm-windows-upgrade
7.补充方案一
- 更新节点使用nvm(或nvmw为Windows)。
- 要更新npm,
npm update npm -g
命令对于使用windows的我无效。有效的方法,是根据文档,重新安装npm:“您可以从https://npmjs.org/dist/下载zip文件,并将其解压缩到node.exe所在的同一个文件夹中。确保先清除以前的安装(尽管覆盖它可能会运行正常…但也可能有问题)。 - 要更新模块,请使用npm update command
8.补充方案二
$ npm install -g npm stable
这个对我有效,我成功从1.4.28更新到了2.1.5。
9.补充方案三
我刚刚在新的Windows 7机器上安装了Node.js,结果如下:
> node -v
v0.12.0
> npm -v
2.5.1
然后我执行了下面的程序:
> npm install -g npm
并成功升级到v2.7.3。但是执行npm -v
还是显示版本号2.5.1。
我依次打开了系统配置面板=>高级设置=>环境变量,除了全局路径变量之外,我看到了一个特定于我的用户帐户的PATH变量。这个特定PATH变量指向新的npm:C:\Users\PhiLho\AppData\Roaming\npm
,而全局路径变量包括到Node的路径:C:\PrgCmdLine\nodejs\
。
修复很简单,将特定路径复制到全局路径中: <some stuff before>;C:\Users\PhiLho\AppData\Roaming\npm;C:\PrgCmdLine\nodejs\
。然后执行:
> npm -v
就能正常显示最新的版本号了:2.7.3。