在 macOS M1 Silicon 上设置节点版本管理器 (NVM)
作为当今的 Web 开发人员,我们通常需要能够动态切换 Node 版本,为此,我们希望在全新安装的机器上安装 Node 版本管理器,我们不想从单独安装 Node 开始,因为这将为我们提供一个 Node 版本(无论我们决定安装哪个版本)
如果您先安装 Node,然后尝试安装 NVM,事情可能会变得复杂,因此如果您已经安装了 Node,我的建议是在安装 NVM 之前将其完全删除。
此外,通过 homebrew 安装时明确不支持 NVM - 安装它的唯一正确方法是使用NVM 的 Readme中的安装脚本。
因此,如果您有 Mac M1,我鼓励您尝试以下步骤。
导航到你的主目录
cd ~
创建.zshrc
文件(如果不存在)
touch .zshrc
在继续下一步之前,我需要手动安装 Rosetta 2 才能运行非为 Apple 芯片构建的应用程序。
softwareupdate --install-rosetta
使用 curl 安装 NVM(可在 NVM Readme 中找到)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
最后一个命令将更新您的.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
使用 NVM 安装 Node
nvm install node
这将安装最新版本的 Node(17.x
撰写本文时为 v)。
注意:v 之前的 Node 版本15.x
不一定与 ARM 兼容,但 Node 似乎已经解决了这个问题,因此如果您安装了 v 之前的版本15.x
,则不需要使用 Rosetta 来运行。
安装 Node 的 LTS 版本
nvm install --lts
运行此命令将安装当前的 Node LTS,在撰写本文时版本为 v 16.x
。不过,我想我会在开发过程中尝试坚持使用这个版本或更高版本;这就是 NVM 的魅力所在,如果我需要旧版本,可以轻松切换!
列出我已安装的 Node 版本
nvm ls
选择我已安装的替代版本
nvm use 16
或者
nvm use --lts
最后,要清除 nvm 缓存以减少混乱,请运行:
nvm cache clear
设置默认值
nvm alias default v10.19.0
但会出现以下错误
! WARNING: Version 'v10.19.0' does not exist. default ->
v10.19.0 (-> N/A)
在这种情况下,您需要按以下顺序运行两个命令
安装您想要的版本
nvm install 10.19.0
将 10.19.0(或其他版本)设置为默认值
nvm alias default 10.19.0
使用特定的 Node 版本
nvm use 12
Now using node v12.22.3 (npm v6.14.13)
现在我们使用的是最新版本的 Node。随着时间的推移,我可以定期运行:
nvm install 12
并获取该版本的最新更新,或设置更具体的早期版本,然后我将拥有两个不同的版本 12,如果需要,我可以在开发过程中来回切换。
卸载 Node 版本
nvm uninstall 12
nvm: Cannot uninstall currently-active node version,
v12.22.3 (inferred from 12).
注意注释中说,这是因为我们没有指定具体版本,所以才推断出来的。但是,我们正处于要删除的节点上,因此需要退出该版本才能删除它:
nvm use 16 && nvm uninstall 12
Now using node v16.4.2 (npm v7.18.1)
Uninstalled node v12.22.3
这不是一个在一个容易找到的资源中被广泛讨论的话题,我发现的关于这个主题的最佳资源来自YouTube 上的 Code Fallacy和Michael Baldwin,他们两人都对这个话题有很好的信息,非常感谢他们,所有的功劳都归于他们......
文章来源:https://dev.to/httpjunkie/setup-node-version-manager-nvm-on-mac-m1-7kl