11

背景

实际工作中要用到nvm来管理node包;直接按照其他帖子的教程进行安装;过程中都会出现443超时的问题fatal: unable to access 'https://github.com/creationix/nvm.git/': Failed to connect to github.com port 443: Operation timed out;这也是一个老生常谈的问题了;mac使用curl安装其他的包也有可能会出现这个问题;尝试了设置代理下载bash运行clone包都没有解决这个问题[头大];最后的最后借用之前安装iterm2的插件的文件解决方式安装成功了nvm;所以整理下来供需要的小伙伴使用

安装提示443

实现

1、安装之前卸载已有的node和node模块(清理环境)
npm ls -g --depth=0                             # 查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装
sudo rm -rf /usr/local/lib/node_modules         # 删除全局 node_modules 目录
sudo rm /usr/local/bin/node                     # 删除 node
cd  /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm       #删除全局 node 模块注册的软链

此时查看node -v可以发现已经没有该模块了

卸载node模块

2、安装nvm(最重要的地方)

使用gitee镜像安装nvm到本地

git clone https://gitee.com/mirrors/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags` # 可以看到地址是gitee的地址

安装nvm
提示成功安装了nvm并带有版本号

3、配置nvm环境变量

经过了第二步nvm还暂时不能使用;当终端关闭之后再打开将nvm失效;nvm仍然不可用;需要添加nvm环境变量;进入.bash_profile文件设置环境变量;如果没有这个文件;则需要创建文件创建 .bash_profile 文件

vi ~/.bash_profile #进入(i编辑 esc退出 :wq保存)
复制下面的两行粘贴并且保存
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
保存退出后执行生效命令
source ~/.bash_profile

nvm环境变量
nvm环境变量生效
如果你使用的是zsh环境的话(我和大多数小伙伴一样用的也是zsh)还需要单独设置 .zshrc文件;

# zshrc文件内
...
source ~/.bash_profile # 找地方放置
保存退出后执行生效命令
source ~/.zshrc
...

zshrc配置

4、查看安装

经过了第三步;这个时候不管是新开命令行窗口还是当前;都可以查看nvm的安装情况了! cmmand -v nvm
查看安装情况
已经成功安装了[欢呼声~]

5、使用nvm安装node
小插曲:如果用的是mac M1 芯片的电脑;需要先在终端 arch -x86_64 zsh 切换切换环境;之后再安装低于node15的版本才可以;因为目前只能安装最新的node版本;详情mac M1 芯片安装低版本node

咱们先安装一个低版本的nodenvm install v8.8.0;然后再安装一个高版本的nvm install v12.18.3
安装node8
node12
安装成功并且提示对应的npm版本(这里有个小插曲就是第六步)
使用nvm ls查看安装的node环境
nvmls查看安装
发现先安装的8.8.0是默认的node版本环境(新开一个命令行窗口也就是这个8);后安装的12.18.3的当前正在使用的node版本;在当前可以使用nvm use x.x.x来切换版本
切换node版本
可以看到箭头所指;当前是使用的8.8.0版本

6、重新安装cnpm

因为咱们之前在第一步卸载了node的所有模块;这时候cnpm也随之丢了;国内还是经常用到这个代理了;咱们再重新安装上
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装cnpm

7、同步其他node模块下的安装环境

当我们使用node8.8.0安装完成一个包之后;如果切换到其他node版本发现安装的包没有同步
nvm同步
咱们先卸载调后安装的node版本;然后再重新使用nvm install v12.18.3 --reinstall-packages-from=8.8.0安装;已达到同步的效果;此处版本号根据自己的实际安装node版本情况修改调整 nvm install vxx.xx.xx --reinstall-packages-from=x.x.x
nvm7-2
nvm7-3
nvm7-4
好了~两个人都可以正常同步使用了

最后

希望能帮到你


songxianling1992
1.3k 声望3.6k 粉丝

当你不知道该选择哪条路的时候;可能你已经走了好一阵子了~