mac使用nvm管理node以及npm

原因(cause)

好久没动笔,我想启动我的hexo,并写上一些分享,我通过下载gitlab上的私有仓库,然后转入github中,下载下来并安装好node.js之后,我执行
npm install -g hexo-cli
希望可以启动我的hexo,但此时却抛出个异常

The operation was rejected by your operating system

本文介绍

本文主要解决mac中node的各个版本会有差异,新旧系统兼容,第三方组件与node版本导致的全局版本混乱等等,所以通过nvm管理起来,网上查询了下资料,有人说可以不卸载直接安装,为了保险起见,我先卸载了,对于不卸载的朋友,请斟酌后再试。

nvm介绍

nvm是node版本管理工具,主要特点:

1.可安装多版本的node。

2.灵活切换当前的node版本。

3.以沙箱方式全局安装第三方组件到对应版本的node中。

4.通过.vnmrc文件,方便灵活地指定各应用系统所需的node版本进行运行。

直接支持linux,OS系统。windows系统需要使用nvm-windows:
https://github.com/coreybutler/nvm-windows/releases

通过nvm管理node,如果之前通过安装包安装推荐删除,如果不删除也不影响安装,只有在别人使用你的电脑的另外账户时会有问题。具体的注意事项可以参考:
https://github.com/creationix/nvm

安装

卸载之前的node.js

如果通过node下载的安装包进行安装,在终端输入以下命令:

sudo rm -rf                 /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}

如果是从brew安装的, 运行brew uninstall node

如果不是则可以直接删除文件夹

sudo rm /usr/local/bin/npm
sudo rm/usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules

安装nvm

安装nvm可以通过两个命令

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

或者

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

查看安装

安装完毕后输入nvm,当有一段输出并没有明显的报错时,代表安装成功。
博主通过命令安装后,自动在 .bash_profile 文件内添加了

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . " $NVM_DIR/nvm.sh"

如果你没有添加,可以手动添加
然后 source 一下 .bash_profile

source .bash_profile

安装版本

nvm install stable # 安装最新稳定版 node
nvm install 10.15.1 # 安装 10.15.1 版本

查看nvm版本:打开新的终端,用nvm current查看当前版本显示

删除指定版本 node:nvm uninstall v10.15.1

使用指定版本 node:nvm use v10.15.1

切换到最新版:
nvm use node

我们给 10.15.1 这个版本号起了一个名字叫做 my-version
nvm alias my-version 10.15.1

然后我们可以运行:

nvm use my-version

下面这个命令可以取消别名:

nvm unalias my-version

另外,你还可以设置 default 这个特殊别名:

nvm alias default node

列出已安装实例

nvm ls

碰到的问题以及解决方法

参考文章

https://github.com/creationix/nvm
https://blog.csdn.net/hahahhahahahha123456/article/details/85220526
https://www.jianshu.com/p/04d31f6c22bd
https://www.jianshu.com/p/04d31f6c22bd