nvm 常规安装步骤
背景:在多个项目开发过程中,发现有些依赖下载特别慢,甚至下载不下来,分析发现是因为npm版本过低而导致下载慢的问题
解决方案
- 方案一:直接升级node,但是涉及多个项目,不推荐。
- 方案二:安装nvm,进行不同的node版本管理
1. nvm 安装前准备工作
为了避免已下载的node和全局node模块冲突,建议删除已安装的node
可以运行下面指令:
// 查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 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
2. nvm 安装
// 安装nvm指令
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
// 创建zsh配置文件
touch ~/.zshrc
// 编辑配置文件
vim ~/.zshrc
//增加下面的配置其一(一般配置2即可)
// 1、这是本地不存在配置文件的时候提示需要添加的配置
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
// 2、这是本地存在配置文件的时候提示需要添加的配置(推荐)
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
//退出vim
esc + :wq
//重新加载配置文件
source ~/.zshrc
//查看是否安装成功
nvm -v
3. nvm 基础指令
// 查看已安装的node版本
nvm list
//查看所有的远程服务器的版本
nvm ls -remote
//查看长久支持的node版本
nvm list available
//显示当前的版本
nvm current
//给不同版本加别名
nvm alias <name> <version>
//删除已定义的别名
nvm unalias <name>
//安转稳定的node版本
nvm install stable
//安装(删除)指定的node版本
nvm install(uninstall) 12.16.1
//切换使用的指定的node版本,只在当前窗口生效
nvm use v12.16.1 //使用某版本的node
//永久版本-所有窗口生效指定版本
nvm alias default <version>
注意:在任意一个命令行窗口进行切换之后,其他的窗口或其他命令行工具窗口 需要关掉工具,重启才能生效。(例如 VSCode内或外部命令切换之后,需要重启 VSCode,才能正常生效,否则或处于 临时生效状态,也就是在 VSCode中重新打开一个命令行查看版本还会是旧版本,所以必须要重启。)这里的 重启 不是简单的关掉窗口重启,没有退出后台进程,而是完全退出杀死工具进程,重新启动。
4. nvm 碰见坑点
4.1 nvm 安装node版本报错clang: error: no such file or directory: ‘CXX=c++‘
解决方案:
第一步:打开 访达 >>> 左侧点击应用程序 >>> 找到你的终端
第二步:鼠标放在“终端” app上 右键 >>> 显示简介
第三不: 勾选使用Rosetta打开, 关闭所有终端重新打开后就正常了
4.2 nvm install安装新版本node报错LibreSSL SSL_read: SSL_ERROR_SYSCALL
解决方案:
第一步:vim编辑器打开bash_profile文件:
sudo vi .bash_profile
输入下面代码:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \."$NVM_DIR/nvm.sh" # This loadsnvm
[ -s "$NVM_DIR/bash_completion" ] && \."$NVM_DIR/bash_completion" #This loads nvm bash_completion
按 esc,然后输入:wq保存退出,重启命令行后重新执行安装命令,如还是不行,执行第二步
第二步 :修改计算机网络配置
系统在解析hostname时使用了ipv6,取消使用,输入下面代码:
networksetup -setv6automatic Wi-Fi