mac安装nvm

5,435

在使用rollup打包库的时候,发现了如下报错

image.png

显示是node版本问题,在命令行查看,显示我的node是14.7的版本,意味着要升级node版本; 但是我的其他项目需要的版本并不需要这么高,如果每次都进行卸载安装势必会非常傻; 看官网又个nvm工具;

但是几番周折,在mac下安装并没有那么容易;折腾了挺久,各种查找,总算有个靠谱的成功的; 特此记录下来;

什么是nvm?

nvm是Mac下的node管理工具,可以在一台电脑上安装多个node版本,并灵活切换。 官网链接

安装前

1. 卸载已安装到全局的 node/node

如果之前是在官网下载的 node 安装包,运行后会自动安装在全局目录,其中 node 命令在 /usr/local/bin/node; npm 命令在全局 node_modules 目录中,具体路径为 /usr/local/lib/node_modules/npm

2. 安装 nvm 之前最好先删除下已安装的 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 

安装nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  • 安装完成后关闭终端,重新打开终端输入 nvm -v 验证一下是否安装成功,当出现版本号时,说明已安装成功。
    如果在新的终端输入 nvm 时提示:command not found: nvm,有可能是以下原因之一:
    • 配置环境变量
  • 你的系统可能缺少一个 .bash_profile 文件,你可以创建一个此文件(可通过vi或vim命令),打开复制粘贴以下代码(安装nvm成功后终端的最好3行代码)进去,保存;
    (官网上也说了这几行代码)
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  • 然后 source 一下 .bash_profile之后再重新打开终端执行nvm -v 验证一下是否安装成功,当出现版本号时,说明已安装成功
source .bash_profile

issure

若执行

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

出现如下错误: curl: (7) Failed to connect to [raw.githubusercontent.com](http://raw.githubusercontent.com/ "raw.githubusercontent.com") port 443: Connection refused

  • 解决办法
    1. 通过IPAddress.com首页,输入raw.githubusercontent.com查询到真实IP地址:199.232.68.133
    1. Mac OS 系统:打开终端(Terminal)
  • 默认位置在 启动台–>其他–>终端在终端输入以下命令:sudo vi /etc/hosts
  • 修改,在尾部追加内容:199.232.68.133 raw.githubusercontent.com
  • 然后:wq保存即可
  • 重新运行安装命令curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

nvm常用命令

nvm ls :打印出所有的版本
nvm install stable:安装最稳定的版本
nvm install v8.9.2 : 安装node的8.9.2的版本
nvm uninstall v8.9.2 : 删除node的8.9.2的版本
nvm current :当前使用的node版本
nvm use v8.9.2 :将node改为8.9.2版本
nvm alias default 0.12.7:设置默认 node 版本为 0.12.7