在 Mac OS 上升级 Node.js 到最新版本。

1006

我目前在使用Mac OS X 10.7.4操作系统上的Node.js v0.6.16版本。现在,我想将其升级到最新的Node.js v0.8.1版本。但是,我从nodejs.org下载并安装了最新的软件包文件后,在终端中输入“node -v”时,系统仍然使用v0.6.16而不是v0.8.1。我是否漏掉了什么步骤?或者,我需要在安装最新版本之前彻底卸载旧版本吗?

顺带一提,我知道nvm可以帮助管理nodejs包。

https://github.com/creationix/nvm/

有没有不使用nvm的方式来升级Node.js?

我已经谷歌过这个问题,但对于最新的Node.js,似乎没有非常清晰的答案。


你可能想先用 brew 命令双重检查是否已经安装了它。https://apple.stackexchange.com/questions/101090/list-of-all-packages-installed-using-homebrew - Adriano
4
大家好 - 这是一个6年前的问题,有一些同样古老的答案。毫无疑问,它们当时是最佳实践。但是从2018年开始,brew upgrade node应该可以正常工作了。请参见下面wprl的答案。 - pscl
4
截至2019年2月,npm网站实际上建议使用Node版本管理器(如nnvm)来安装和升级Node和npm。 - alexw
我遇到了这个问题,是因为没有必要引入“node-sass”,而且它并不需要。通过删除这个导入源,问题得到了很好的解决。这是2021年在React内部出现了类似错误信息的问题。 - ArifMustafa
只需使用“nvm install <version>” - undefined
显示剩余3条评论
32个回答

1919

以下是我成功从v0.8.18升级到v0.10.20的方法,无需其他要求(比如brew等),在终端中键入以下命令:

  1. sudo npm cache clean -f (强制)清除npm缓存
  2. sudo npm install -g n 安装n(这可能需要一些时间)
  3. sudo n stable 升级到当前稳定版本

请注意,sudo 可能会提示您输入密码。

关于步骤3的补充说明: stable可以替换为latestlts(长期支持)或任何特定的版本号,例如0.10.20

如果在键入node -v命令时未显示版本号,则可能需要重新启动计算机。

这些指令也可以在此处找到:davidwalsh.name/upgrade-nodejs
有关n软件包的更多信息在此处找到:npmjs.com/package/n
有关Node.js发布计划的更多信息请参见: github.com/nodejs/Release


6
我已经努力更新了在MacOS X Snow Leopard上的Node版本,从v0.10升级到了v0.12。谢谢。 - Salvador P.
3
你可以使用'n lts'安装长期支持版本,而不是当前稳定版本(即在撰写本文时的5.10.1版本),这样做可以得到4.4.3版本。 - stephent
6
在最后一步使用 sudo n lts 命令可以获取长期支持版本。 - Slartibartfast
3
这对我没起作用。是我做错了什么吗? - pravchuk
9
这个方法有效,但没有人解释安装“n”命令的原因。直到今天我才发现,“n”是一个Node.js版本管理器,npm js网站上有些许解释- https://www.npmjs.com/get-npm - Mark
显示剩余11条评论

1014
如果你最初使用 Homebrew 安装了 Node.js,则运行以下命令:
brew update
brew upgrade node
npm install -g npm

或者作为一行代码:

brew update && brew upgrade node && npm install -g npm

一个方便的版本更改方式是使用n

brew install n

使用n安装Node.js的最新版本:

n latest

或者,使用 n 安装最新的 LTS 版本:

n lts

或者,您可以使用nvm代替n:

brew install nvm

使用nvm安装最新版本的Node.js:
nvm install node

如果您是通过软件包安装的,则从nodejs.org下载最新版本。请查看安装Node.js和更新npm

17
我刚刚给这个答案点了赞,但等了7分钟后,Brew告诉我安装失败了。我还尝试运行port upgrade node,但Brew已经把包搞糟了,现在端口找不到Node了。最后我去了nodejs.org下载安装包,然后一切都很顺利,包括npm! - Jinzhao Huo
3
建议不要同时安装多个 Homebrew、MacPorts 或 Fink。 - wprl
2
在当前的 brew 版本中,它声明: “如果您更新 npm 本身,请勿使用 npm update 命令。 更新 npm 的上游推荐方法是:npm install -g npm@latest。” - Pascal
10
如果你的Node版本仍未更新,请按照上述说明运行npm install -g node命令。 - Thilina Hasantha
3
我希望有一种方法可以确定我是使用brew、port还是其他机制安装了某个软件,因为我总是记不住! - Michael
显示剩余18条评论

217

由于在搜索如何在Mac上升级nodejs时,这似乎是谷歌搜索的首选结果,尽管它已经有些年头了,但我仍然想为将来遇到此问题的人提供一些提示。

通过NPM升级
您可以使用@Mathias上面描述的方法,或选择以下更简单的终端方法。

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

之后,您可以选择确认升级

node -v

你的Node.js应该已经升级到最新版本。如果你想要升级到特定版本,比如v0.8.19,那么你可以使用以下命令:

sudo n stable

使用

sudo n 0.8.19

编辑 除非必要,避免使用sudo。请参考评论中的Steve的建议。


6
为什么您会对一个回答进行负投票,却不添加评论来解释为什么? - Kennedy Nyaga
1
因为你建议使用sudo。 - OZ_
4
可以,但是你觉得在“清除缓存”时使用--force标志真的有必要吗?而且我前两个命令不需要使用sudo - Steve Bennett
6
有时候在不需要使用sudo的情况下使用它实际上会导致混乱,因为你最终会拥有属于root的文件,这些文件在没有sudo的情况下无法修改。 - Steve Bennett
很好的答案。运行良好。 - marlonpya
显示剩余3条评论

77

访问http://nodejs.org,下载并运行安装程序。 现在应该可以正常工作了 - 至少对我有效。


我不确定我理解你在问什么。 - Spoeken
1
抱歉造成困惑(匆忙撰写)。我已从官网的下载链接直接安装了Node.js,当前版本为v0.8.14。当v0.8.15发布时,我是否需要再次下载它,它是否会自动更新,是否会联系并通知我?例如,使用Homebrew时,我会执行"brew upgrade"升级命令(这由我控制)。 - Dimitrios Mistriotis
1
我不认为它会自动更新。你需要定期检查并从他们的网页下载新版本。但我对此并不完全确定。 - Spoeken
7
这里可能是最简单的方法。 - Mohit
1
这在英特尔 Mac 上运行良好。有人尝试在 M1 Mac 上使用过吗? - Alphapico
显示剩余5条评论

57
您可以安装nvm,并安装多个版本的Node.js。
curl https://raw.github.com/creationix/nvm/master/install.sh | sh
source ~/.nvm/nvm.sh

然后运行:

nvm install 0.8.22  #(or whatever version of Node.js you want)

通过以下命令,您可以查看您安装的版本:

nvm list

你可以使用以下方式在版本之间进行切换:

nvm use 0.8.22

使用 NVM 的优点在于您可以将不同的 Node.js 版本并行测试。如果不同的应用程序需要不同版本的 Node.js,则可以同时运行它们。

2
我现在正在使用这个方法。在我的看来,这是在同一台机器上保持多个版本运行的最佳方式。 - afterglowlee
如果您将zch设置为默认shell,那是行不通的。安装nvm时会在尝试更新.bash_profile文件时出错。您需要安装https://github.com/lukechilds/zsh-nvm或手动编辑zch bash配置文件。 - TheRennen

37

我使用称为 n 的 Node 版本管理器。

npm install -g n

然后

n latest

或者

n stable

3
LTS 版本 n lts:指稳定版本 n 的长期支持版。 - Sergio Rodrigues

30

只需访问Node JS网站并安装最新版本。

请安装最新版本,而不是推荐的稳定版本。它将使您能够在节点上使用最新的ES6功能。

此处可找到Node JS

还要更新npm,您需要使用以下命令。

sudo npm i -g npm@latest

所有项目都将正常工作。

更新:2020年另一个好的选择是为节点使用nvm,它可以支持多个版本。 使用nvm install --lts始终能够更新到最新的节点版本,使用nvm ls-remote命令检查新版本的节点。


Mac的其他选项:brew update && brew install node && npm -g npm


26

升级Node版本,不需要安装任何软件包,甚至不需要安装nvm本身:

sudo npx n stable

说明
这种方法类似于 Johan Dettmar 的答案。唯一的区别在于,这里没有在本地机器上全局安装 n 包。


1
快速,清洁和美观! - Carlos Thadeu
1
整洁美观。这是可以接受的答案。 - Jitesh Dhamaniya

23
在 macOS 上,Homebrew 推荐的方法是运行:

brew install [package_name]

brew install node
npm install -g npm@latest

终端命令的截图


1
它将安装最新版本,而不仅仅是当前的版本。 - Nick Woodhams

12

我可以使用以下命令升级节点:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接