在 macOS M1 Silicon 上设置节点版本管理器 (NVM)

2025-06-07

在 macOS M1 Silicon 上设置节点版本管理器 (NVM)

作为当今的 Web 开发人员,我们通常需要能够动态切换 Node 版本,为此,我们希望在全新安装的机器上安装 Node 版本管理器,我们不想从单独安装 Node 开始,因为这将为我们提供一个 Node 版本(无论我们决定安装哪个版本)

如果您先安装 Node,然后尝试安装 NVM,事情可能会变得复杂,因此如果您已经安装了 Node,我的建议是在安装 NVM 之前将其完全删除。

此外,通过 homebrew 安装时明确不支持 NVM - 安装它的唯一正确方法是使用NVM 的 Readme中的安装脚本。

因此,如果您有 Mac M1,我鼓励您尝试以下步骤。

导航到你的主目录

cd ~
Enter fullscreen mode Exit fullscreen mode

创建.zshrc文件(如果不存在)

touch .zshrc
Enter fullscreen mode Exit fullscreen mode

在继续下一步之前,我需要手动安装 Rosetta 2 才能运行非为 Apple 芯片构建的应用程序。

softwareupdate --install-rosetta
Enter fullscreen mode Exit fullscreen mode

使用 curl 安装 NVM(可在 NVM Readme 中找到)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

最后一个命令将更新您的.zshrc文件,使其如下所示:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
Enter fullscreen mode Exit fullscreen mode

使用 NVM 安装 Node

nvm install node
Enter fullscreen mode Exit fullscreen mode

这将安装最新版本的 Node(17.x撰写本文时为 v)。

注意:v 之前的 Node 版本15.x不一定与 ARM 兼容,但 Node 似乎已经解决了这个问题,因此如果您安装了 v 之前的版本15.x,则不需要使用 Rosetta 来运行。

安装 Node 的 LTS 版本

nvm install --lts
Enter fullscreen mode Exit fullscreen mode

运行此命令将安装当前的 Node LTS,在撰写本文时版本为 v 16.x。不过,我想我会在开发过程中尝试坚持使用这个版本或更高版本;这就是 NVM 的魅力所在,如果我需要旧版本,可以轻松切换!

列出我已安装的 Node 版本

nvm ls
Enter fullscreen mode Exit fullscreen mode

选择我已安装的替代版本

nvm use 16
Enter fullscreen mode Exit fullscreen mode

或者

nvm use --lts
Enter fullscreen mode Exit fullscreen mode

最后,要清除 nvm 缓存以减少混乱,请运行:

nvm cache clear
Enter fullscreen mode Exit fullscreen mode

设置默认值

nvm alias default v10.19.0
Enter fullscreen mode Exit fullscreen mode

但会出现以下错误

! WARNING: Version 'v10.19.0' does not exist. default -> 
v10.19.0 (-> N/A)
Enter fullscreen mode Exit fullscreen mode

在这种情况下,您需要按以下顺序运行两个命令

安装您想要的版本

nvm install 10.19.0
Enter fullscreen mode Exit fullscreen mode

将 10.19.0(或其他版本)设置为默认值

nvm alias default 10.19.0
Enter fullscreen mode Exit fullscreen mode

使用特定的 Node 版本

nvm use 12
Now using node v12.22.3 (npm v6.14.13)
Enter fullscreen mode Exit fullscreen mode

现在我们使用的是最新版本的 Node。随着时间的推移,我可以定期运行:

nvm install 12
Enter fullscreen mode Exit fullscreen mode

并获取该版本的最新更新,或设置更具体的早期版本,然后我将拥有两个不同的版本 12,如果需要,我可以在开发过程中来回切换。

卸载 Node 版本

nvm uninstall 12
nvm: Cannot uninstall currently-active node version, 
v12.22.3 (inferred from 12).
Enter fullscreen mode Exit fullscreen mode

注意注释中说,这是因为我们没有指定具体版本,所以才推断出来的。但是,我们正处于要删除的节点上,因此需要退出该版本才能删除它:

nvm use 16 && nvm uninstall 12
Now using node v16.4.2 (npm v7.18.1)
Uninstalled node v12.22.3
Enter fullscreen mode Exit fullscreen mode

这不是一个在一个容易找到的资源中被广泛讨论的话题,我发现的关于这个主题的最佳资源来自YouTube 上的 Code FallacyMichael Baldwin,他们两人都对这个话题有很好的信息,非常感谢他们,所有的功劳都归于他们......

文章来源:https://dev.to/httpjunkie/setup-node-version-manager-nvm-on-mac-m1-7kl
PREV
💫 编写代码 | 初级开发者终极生存指南 1. 先思考,后构建 2. “杀死你的孩子” 3. 学会逃避问题
NEXT
30 天内从 Angular 过渡到 React