Mac M1芯片安装NVM踩坑记

8,678 阅读2分钟

由于新老项目依赖不同的node版本,所以需要使用nvm管理不同版本的node和npm。

卸载node及相关模块

# 查看已经安装在全局的模块
npm ls -g --depth=0
# 删除全局 node_modules 目录
sudo rm -rf /usr/local/lib/node_modules
# 删除 node
sudo rm /usr/local/bin/node 
# 删除全局 node 模块注册的软链
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm

安装nvm

执行安装命令
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.1/install.sh | bash
打开终端,进入用户的home目录中
cd ~/
检查配置文件

使用 ls -a 显示这个目录下的所有文件(夹)(包含隐藏文件及文件夹),查看有没有 .zshrc 这个文件

ls -a
新建.zshrc文件

如果没有,则新建一个

touch ~/.zshrc
配置.zshrc文件

将 nvm 环境变量添加到 shell 中, 这里我系统默认的是的zsh而不是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
加载配置文件
source ~/.zshrc
安装14以下的版本,先进入Rosetta shell环境
arch -x86_64 zsh
常用命令
# 最新稳定版本 
nvm install stable
# 列出所有可安装的版本
nvm ls-remote
# 列出所有已经安装的版本
nvm ls
# 切换使用指定的版本
nvm use <version>
# 显示当前使用的版本
nvm current
# 设置默认 `node` 版本
nvm alias default <version>
# 解除当前版本绑定
nvm deactivate
# 删除某版本的node
nvm uninstall <version>

node的安装位置

在终端我们可以使用 which node 来查看我们的 node 被安装到了哪里,这里终端打印出来的地址其实是你当前使用的 node 版本快捷方式的地址

/Users/你的用户名/.nvm/versions/node/v10.13.0/bin/node

如果你想查看所有 node 版本的安装文件夹,我们可以在 访达(finder) 中使用快捷键 Command+Shift+G 输入 /Users/你的用户名/.nvm/versions 地址就可以看到。

但是这里想说的是 Mac 默认是不显示隐藏文件夹的,.nvm 是个隐藏文件夹在 访达(finder) 中看不到,在 Mac 下显示隐藏文件的快捷键是 Command+Shift+.,关闭也是这个快捷键

所以可以知道在 nvm 下 node 版本管理方式,安装的模块不是公用的,也就是说你在切换版本后需要在切换的版本下重新安装