如何更新Node.js?


743

我做了以下更新我的npm:

npm update npm -g

但是我不知道如何更新Node.js。有什么建议么?(我正在使用Node.js 0.4.1,并想更新到Node.js 0.6.1。)


5
可能重复:如何为下一个版本更新NodeJS和Npm?。(至少应该链接)
blong 2012年


29
我真的不明白为什么大多数答案都建议安装第三方工具:/
mcont

请参考此网站,hostingadvice.com / how- to / update-node
js

自从首先回答了这个问题(如果您不需要版本管理)以来,事情就变得容易了很多:所有平台(Windows,Mac和Linux)
swelet 17'Nov

Answers:


474

使用节点版本管理器(NVM)

这是一个Bash脚本,可让您下载和管理不同版本的节点。完整的源代码在这里

对于Windows的nvm有一个单独的项目:github.com/coreybutler/nvm-windows

以下是将NVM用于Windows上多个版本的节点的完整步骤

  1. 下载nvm-setup.zip解压缩并安装。
  2. nvm list available从cmd或gitbash或powershell 执行命令,这将列出节点的所有可用版本在此处输入图片说明
  3. 使用命令,nvm install version 例如nvm install 12.14.0在机器上安装
  4. 最后一次安装使用nvm use version以使用较新版本,例如nvm use 12.14.0

13
仅供参考,安装NVM后要运行的命令是'nvm install <version>'。例如“ nvm install v0.8.7”
Kevin Lamping

13
你不需要这个 节点不是Ruby。
fiatjaf 2015年

26
@SimonEast Windows有一个nvm:github.com/coreybutler/nvm-windows
Phil Hannent

5
@PhilHannent,根据NVM github页面,它们不支持Windows上的NVM,因此可以说“没有用于Windows的官方NVM”
Sudhanshu Mishra's

4
对于Windows,只需下载最新版本并安装。它将自动更新为您下载的新版本。
last_fix

1136

我按照以下说明从Mac上的Node.js版本0.10.6升级到0.10.21。

  1. 清除NPM的缓存:

    sudo npm cache clean -f
  2. 安装一个名为“ n”的小助手

    sudo npm install -g n
  3. 安装最新的稳定Node.js版本

    sudo n stable

或者选择一个特定的版本并按以下方式安装:

sudo n 0.8.20

对于生产环境,您可能需要注意版本编号,并对奇/偶数保持谨慎。

学分


更新(2017年6月):

这个已有4年历史的职位仍然获得投票支持,所以我猜它仍然对很多人有用。不过,沃尔什先生本人建议只使用NVM Node.js的更新替代。

因此,这是您今天可能想要做的:

找出您正在使用哪个版本的Node.js:

node --version

找出您可能已经安装了哪个版本的Node.js,以及当前正在使用的哪个版本:

nvm ls

列出所有可用于安装的Node.js版本:

nvm ls-remote

显然,对于Windows,该命令将如下所示:

nvm ls available

假设您选择Node.js v8.1.0进行安装,请键入以下内容以安装该版本:

nvm install 8.1.0

然后,您可以自由选择安装的Node.js版本。因此,如果您需要使用v4.2.0之类的旧版本,则可以将其设置为活动版本,如下所示:

nvm use 4.2

82
您应该相信您的消息来源-您的答案引自David Walsh的博客:davidwalsh.name/upgrade-nodejs。还应注意的是,如原始博客文章中的评论所示,此方法存在一些重大警告,但有些破坏性。
肖恩·厄克特

3
不幸的是,din没为我工作..确实像在Linux机器上描述的那样-“ node -v”在显示“ v0.10.5”之前和之后都完全一样
迈克尔

28
再一步。关闭并重新打开终端,或者如果使用ssh,则退出并重新登录以查看新的node-v
isimmons

1
@Rob Imig:全局安装的脚本通常会转到/usr/local/bin需要特殊权限才能安装的地方。更多信息:github.com/npm/npm/issues/3139 一个可能的修复/解决方法(如果您真的想避免使用sudo):stackoverflow.com/questions/16724259/npm-command-sudo-or-not
Oliver Schafeld

2
似乎对我有用,但只是点击了上面指向David Walsh博客的链接,他明确表示不要使用它-警告!
brianjlennon

391

如果您安装了Homebrew(仅适用于macOS):

$ brew upgrade node

3
同意,我每几天进行一次“ brew upgrade”(升级),并且我了解所有软件包的最新更改
Glen Selle 2013年

3
这很痛苦,因为这意味着必须升级xcode,这意味着必须升级osx ...
JGallardo 2013年

4
我的说节点未安装。注意:我没有使用自制软件安装节点。还有什么我应该做的吗?
theonlygusti 2016年

2
如何使用brew安装特定版本的节点?
Shobhit Puri

2
我在职业生涯的早期就写了这本超级书,从那时起就有机会尝试一堆不同的技术。我强烈建议您安装n并使用它,如果可以,请在此线程上另外给出一个答案:stackoverflow.com/a/19584407/392113
将于

305

这是一个简单的解决方案,适用于所有受支持的操作系统*,包括Windows

经过大量的浏览并且没有找到直接的解决方案,我只是尝试转到Node.js网站,单击主页上的DOWNLOADS按钮并执行安装程序(MSI)。

值得庆幸的是,它可以处理所有事情,并且单击“下一步”按钮,我在Windows机器上运行了最新的Node.js版本。

(这是原始答案

下载NodeJS按钮

对于Docker用户,这是官方的Node.js映像


PS:要检查您的Node版本,请使用npm versionnode --version
PPS:随时关注NodeJS博客-漏洞,因此您不会错过重要的安全发布。

* Node.js支持的操作系统:WindowsLinuxMacOSSunOSIBM AIX


11
如此简单和明显。我一直在寻找快捷方式,但是这种方式似乎是最简单的。node --version来检查它是否工作。.我也必须在Google上搜索-不要经常检查我的节点版本。
史蒂夫(Steve)

1
这对我没有用。我的安装版本为0.10.26。我一直在尝试安装6.10.0 LTS,但似乎无法下载和安装6.10.0的次数非常多,Windows 10计算机只能看到0.10.26。在“添加删除程序”中,我仅看到6.10.0。
约翰·利特尔(Little Little)

4
为什么要在操作系统的Wiki页面上建立超链接?
布法罗

8
我更喜欢CLI:D并且我是Windows用户。npm install -g npm stable然后npm install -g node
Radmation

1
像往常一样,在Windows中,双击就是您需要进行的更新。只需下载最新版本并安装它,即可确认已成功升级多次。
Xavi3R猫王

254

所有平台(Windows,Mac和Linux)

更新(2020年4月)


选择1:通过安装程序

只需转到nodejs.org并使用最新的安装程序即可。


备选方案2:通过NPM

npm install -g npm stable

npm install -g node


就是这样。它曾经更加复杂,人们使用了不同种类的软件包和策略来对其进行管理。但是情况已经变好了。


4
安装程序重新安装后,gulp无法正常工作。然后我打电话给我npm rebuild,一切都很好。
美女

1
这对我没有用。我的安装版本为0.10.26。我一直在尝试安装6.10.0 LTS,但似乎无法下载和安装6.10.0的次数非常多,Windows 10计算机只能看到0.10.26。在“添加删除程序”中,我仅看到6.10.0。我找不到如何删除或更新此旧版本,或者如何在其上安装新版本。有任何想法吗?
约翰·利特尔(Little Little)

3
对于最后一条注释,可以使用“ where”命令查找可执行文件。例如:“ where node.exe”。在我的系统(win10)中,这给出了“ C:\ Program Files \ nodejs \ node.exe”
Dinesh Rajan

1
我同意,只是去nodejs.org和下载,它会自动更新一切
russiansummer

3
我尝试了这个问题的其他解决方案,而这个解决方案最简单也最令人沮丧。
杰夫·马里诺

157

第一次更新npm

npm install -g npm stable

然后更新node

npm install -g node 要么 npm install -g n

安装版本后检查

node --version 要么 node -v


5
要知道它的工作对我的Windows 2016下的,但没有节点被安装到当前用户的目录:C:\Users\my-current-user\AppData\Roaming\npm\...; 它既未更新C:\Program Files\nodejs路径下的旧安装,也未更新路径下的变量。我最终使用msi-installer重新安装。帮我解决了
surfmuggle

这是一个可怕的主意。为什么?更高版本的npm需要更高版本的节点。因此,您可以更新npm,然后由于需要较新版本的node而使其停止工作。因此,您重新开始,现在您的npm已损坏。
user3786992

1
它的安装6.8.0用于npm,但我想要6.11npm install -g npm
NodeJS,

2
辛苦了,谢谢。这应该是公认的答案!
雨果·纳瓦·科普

此后,我们需要更改符号链接ln -sf /usr/local/n/versions/node/10.17.0/bin/node /usr/bin/node
Vinod Sai

148

Windows上,您可以使用Chocolatey安装和更新Node.js(以及许多其他软件包)。

安装节点

cinst nodejs.install

更新节点

cup nodejs.install

注意:您需要先安装Chocolatey,然后才能使用cinstcup


1
我得到了:Microsoft.AspNet.Mvc的架构版本与NuGet的2.1.31022.9038版本不兼容。请从go.microsoft.com/fwlink/?LinkId=213942升级NuGet到最新版本。当我尝试运行cup nodejs.install时。发现如果我在C:\ Chocolatey \ chocolateyinstall目录中的nuget.exe上运行nuget.exe update -self。希望这可以帮助任何人。
亚伦·P·奥尔兹

1
cinst nodejs.installChocolatey(v0.9.8.27)正在安装“ nodejs.install”和依赖项。通过安装,您接受“ nodejs.install”的许可证以及要安装的每个依赖项。找不到软件包“ nodejs.install”。命令“安装”失败(有时表明部分失败)。其他信息/软件包:nodejs.install
Frederik Krautwald 2014年

22
我对您如何更新Chocolatey出现疑问。
马丁·布朗

1
nodejs.install和之间有什么区别nodejs
Ohad Schneider

6
@OhadSchneider(如果使用),.install则可以从Windows中的“应用和功能”中卸载节点
抢劫

80

要控制您的Node.js版本,可以尝试n。我发现它非常简单实用。

n是Node.js二进制管理,无子shell,无配置文件设置,无复杂的API,非常简单。

npm install -g n

n 0.6.19 将安装Node.js v0.6.19。


170
不在Windows上运行。
2013年

3
您也可以在不同的nodejs版本之间切换,只需键入“ n”并选择所需的版本
Mikhail.Mamaev 2013年

2
我也无法在Windows上运行它。作者应发表这一事实。对我来说这是死胡同。
Tim Hardy 2013年

1
它在git bash shell中的Windows中对我有效。因此,如果您使用git,请启动git bash并在那里尝试!
Zugwalt 2014年

5
对我来说,在Win7上不起作用-即使在git bash中也是如此。npm ERR! notsup Not compatible with your operating system or architecture: n@1.2.9 npm ERR! notsup Valid OS: !win32 npm ERR! notsup Valid Arch: any npm ERR! notsup Actual OS: win32
mwotton 2014年

66

要将节点升级到最新版本或特定版本,可以执行以下操作:

sudo npm install n -g
sudo n 0.10.18   // This will give you the specific version

对于最新的稳定版本:

sudo n stable

对于最新的LTS版本(在Mac上测试)

sudo n lts

1
您能否在2011年这样做?为什么其他人都回答外部解决方案?+1使用NPM,值得回答IMO。
Erik Reppen 2013年

2
在AWS EC2 Linux实例上为我工作
ChrisRich 2015年

如果要在Windows上安装“ n”,请不要浪费时间。目前,“ n”仍未在Windows上运行。对于Windows,您必须从nodejs.org上的安装程序进行更新,使用npm`npm install -g node``,使用chocolaty或安装nvm(node的第三方版本管理器)。
Paul Stoner

49

简短而愚蠢的答案:

转到此页面:下载| Node.js

下载适合您平台的安装程序,然后进行安装。


您可以在ubuntu / LINUX上运行它吗?
Ashish Ratan

3
不仅适用于Windows,也可以在Mac,这是最快的
德米特里·扎伊采夫

OP没有提及有关该平台的任何内容,因此MSI答案是有效的。
Hibou57年

我修改了答案,改为说“下载适合您平台的安装程序”。不客气:) @AshishRatan同一页上有Linux二进制文件。
ADTC '18年

@ADTC nvm是最佳解决方案
Ashish Ratan

36

当我看到我的Node.js安装已过时时,我遇到了同样的问题。

以下几行内容将处理所有问题(对于Ubuntu):

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

之后,node -v您将获得最新的可用版本。


1
在Mac OS X Yosemite上也可以完美工作。
justnorris

1
完成此操作后node -v仍返回较旧的版本号。但是whereis node实际上,我可以检测到/usr/local/bin/node
bvdb

在Ubuntu 18.04上没有任何麻烦。
天才

@bvbd使用的版本node(默认情况下)在这种情况下可能取决于您的目录的顺序PATH
rinogo

19

在CentOS 7上,您可以执行以下操作:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable
sudo ln -sf /usr/local/n/versions/node/5.4.1/bin/node /usr/bin/node
node v (Should show updated version now)
npm rebuild node-sass (Optional: if you use this)

注意:需要使用符号链接将节点二进制文件与最新安装的Node.js二进制文件链接。


2
为我工作,我之前错过的重要事情是符号链接。
Yauhen

请注意,截至目前,EPEL7具有最新的长期稳定版本,因此仅在需要更新时才建议使用这些步骤。
nponeccop

节点–v module.js:473 throw err; ^错误:无法找到模块“/根/测试/ -V”
阿列克谢嘘。

n最新的/ usr / bin / n:第263行:未找到命令/ usr / bin / n:263行:未找到命令
Alexey Sh。

@AlexeySh。它对我有用,显然对至少16个人有用。
crmpicco

12

对于OS X,我具有v5.4.1,并且需要最新版本6,因此我转到Node.js主页并单击以下链接之一:

Node.js OS X下载链接

然后,我跟随安装程序,然后神奇地拥有了最新版本的Node.js和npm。


5

您可以使用nvm。

  1. http://nodejs.org/上检查最新版本(例如v0.10.26)
  2. nvm install v0.10.26

做完了

您可以选择要运行的版本:

nvm ls 列出可用的版本,并告诉您现在正在使用哪个版本。

nvm use VERSION 将当前节点更改为请求的版本。

nvm alias default VERSION设置默认版本。下次获取nvm.sh时,将加载该版本(请注意,它不会立即更改正在使用的版本,请运行该版本nvm use)。


1
nvm是第三方图书馆:P
Marko Bonaci 2014年

1
这很尴尬。我从第一天开始就使用它,没有注意到。我将编辑答案。
Riccardo Galli'3

nvm alias default VERSION是我的救星!
coderpc

我还将nvm copy-packages <previous version> 在末尾添加所有全局依赖项的更新
il0v3d0g

5

一些Linux发行版(例如Arch Linux)在其程序包存储库中包含Node.js。在此类系统上,最好使用标准的程序包更新过程,例如pacman -Suy或类似apt-getyum命令。

截至目前(2016年11月),EPEL7提供了最新版本的Node.js(6.9.1是Node.js主页上提供的最新LTS版本)。因此,在CentOS 7及其衍生版本上,您只需通过yum install epel-release和添加EPEL存储库yum install nodejs

CentOS 6 / EPEL6有0.10.x,自2016年10月以来不支持上游。


4

今天,我在Windows Git Bash上运行:

$ npm i node -g

并得到以下输出:

> node@10.6.0 preinstall C:\Users\X\AppData\Roaming\npm\node_modules\node
> node installArchSpecificPackage

+ node-win-x64@10.6.0
added 1 package and audited 1 package in 23.368s
found 0 vulnerabilities

C:\Users\X\AppData\Roaming\npm\node -> C:\Users\X\AppData\Roaming\npm\node_modules\node\bin\node
+ node@10.6.0
added 2 packages from 1 contributor in 26.089s

有关更多信息,请访问https://www.npmjs.com/package/node


3

您可以在Windows上使用Chocolatey。它非常易于使用,并且对保持其他应用程序的更新很有用。

另外,您只需从https://nodejs.org下载最新版本并进行安装。


1
他问“我做了以下操作来更新我的npm:“ npm update npm -g”但是我不知道如何更新node.js。有什么建议吗?(我使用的是node.js 0.4.1,想更新为node.js 0.6.1)。” 我建议他使用Chocolatey简化流程,但我也建议他从站点下载最新版本并进行安装,这足以按他的要求更新nodeJS。因此,我认为我的回答确实为他的问题提供了令人满意的解决方案。
安德烈·莫拉塔




3

对于2018年以上的macOS 以上的(因为上述所有解决方案对我而言都是失败的):

只需转到官方的nodejs网站,下载官方的nodejs软件包并双击安装即可。这是您可以做的最简单,安全且始终有效的操作。


2

根据Nodejs Official Page,您可以使用ChocolateyScoop在Windows上安装和更新新的节点版本。

使用(巧克力):

cinst nodejs
# or for full install with npm
cinst nodejs.install

使用(瓢):

scoop install nodejs

您也可以直接从nodejs.org网站下载Windows Installer。


1

对于Ubuntu:

sudo apt-get install -y curl
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs

资料来源:https : //askubuntu.com/questions/426750/how-can-i-update-my-nodejs-to-the-latest-version


curl {anything} | sudo bash -不可能是一个好的安全实践...即使不进行复杂的攻击,如果您拼错了域名怎么办?
krubo

您的评论没有任何价值。您还可以拼写错误的银行域,并在假的银行网站上泄漏您的银行详细信息。
布鲁诺·保利诺

1

你们当中有些人已经说了,最简单的办法是更新通过Node.js的包管理器Node.js的,NPM。如果您是Linux用户(以我的情况为基于Debian的用户),我建议将这些行添加到您的.bashrc文件中(在主目录中):

function nodejsupdate() {
    ARGC=$#
    version=latest
    if [ $ARGC != 0 ]; then
        version=$1
    fi
    sudo npm cache clean -f
    sudo npm install -g n
    sudo n $version
}

保存后重新启动终端,并写入nodejsupdate更新为最新版本的Node.js或nodejsupdate v6.0.0(例如)更新为特定版本的Node.js。

奖励:更新npm(将这些行添加到.bashrc

function npmupdate() {
    sudo npm i npm -g
}

重新启动终端后,写入npmupdate以将您的节点程序包管理器更新为最新版本。

现在,您可以通过终端(更轻松)更新Node.js和npm。



0

只需在当前文件夹上安装新版本即可。我在Windows上将我的版本从v4.x升级到了v6.10。


0

在Windows中,从网站下载节点可执行文件并进行安装。这对我有用。


-2
  1. npm clean cache -您忘了清理您的缓存
  2. npm update -g

    这适用于我的Windows,希望它也对您有用:D


npm cache clean(不同的顺序)
naXa

6
npm update -g该命令将更新所有全局安装的软件包,但不会更新node.js本身。
naXa

-4

如果要更新Node.js,请尝试

npm update

从Windows cmd提示符。

否则,如果您想更新任何特定的软件包,请尝试

npm update <package_name>

例:

npm update phonegap

22
对于不同的问题,这是一个很好的答案。
kentcdodds 2014年

这对我不起作用。在执行nmp更新之前,节点--version表示0.10.26。更新后,使用相同版本。即使最新版本是7.7.1或类似版本。
约翰·利特尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.