一、安装 nvm
1. 卸载之前安装的 node
安装 nvm 前,要把之前安装的 node 卸载干净,详细卸载步骤,请移步这里。
2. 安装 nvm
这里要注意,官方明确说明用 homebrew 安装是不支持的,那我们就不用 brew 安装,就安装官方介绍的安装。
1. 检查主目录下有没有 .bash_profile 或 .zshrc 文件
bash 终端开发者检查有没有 ~/.bash_profile 文件,zsh 终端开发者检查有没有 ~/.zshrc 文件。
cd ~/
ls -a
查看有没有 .bash_profile 或
.zshrc 文件,没有则新建一个:
touch ~/.bash_profile
touch ~/.zshrc
2. 检查电脑上有没有安装 Git,没有则需要安装
3. 安装 nvm
-
通过 curl 安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
- 通过 wget 安装
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
上面2个指令会自动 clone nvm 项目到 ~/.nvm,然后把下面这段代码添加到正确的文件里 (~/.bash_profile
, ~/.zshrc
, ~/.profile
, or ~/.bashrc
),所以我们就不用手动去添加了。
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
4. 手动安装来处理步骤3失败的情况
手动安装就是把步骤3的2个命令自动会执行的2个步骤手动执行一遍:
1. git clone nvm项目到 ~/.nvm
cd ~/
git clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvm
git checkout v0.38.0 #切换到最新版本
. ./nvm.sh
2. 在正确的文件里添加下面这段代码
bash 终端添加在 ~/.bash_profile 文件里,zsh 终端添加在 ~/.zshrc 文件里(如果没有 ~/.zshrc 文件则先新建一个)。
注意:macOS Catalina
系统(即版本 10.15 及之后)默认的 shell
是 zsh
,不在是 bash
。
不添加下面这段代码的后果是:重启
bash
后会出现命令找不到的情况。
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
添加完成后,重启终端输入 nvm --version 验证是否安装成功。
好了,到这里为止,nvm 就安装完成了!
二、zsh 终端也可以用 zsh-nvm 插件快捷安装 nvm
按照官方的步骤安装就可以了,zsh-nvm地址
ps: 安装完了才发现还有这么一种方法,没有亲手实践过。
三、nvm 命令
- nvm --help 展示帮助信息
nvm ls
列出所有已经安装的版本nvm ls-remote
列出所有可安装的版本-
nvm current
显示当前的版本 -
nvm install stable
安装最新稳定版 nvm install <version>
安装指定的版本,如nvm install 8.14.0
nvm use <version>
切换使用指定的版本nvm uninstall <version>
卸载指定的版本nvm alias default <version>
设置默认node
版本-
nvm alias <name> <version>
给不同的版本号添加别名 -
nvm unalias <name>
删除已定义的别名 -
nvm reinstall-packages <version>
在当前版本 node 环境下,重新全局安装指定版本号的 npm 包 -
nvm deactivate
解除当前版本绑定。
nvm 默认是不能删除被设定为 default 版本的 node,特别是只安装了一个 node 的时候,这个时候我们需要先解除当前版本绑定,然后再使用
nvm uninstall <version>
删除
- nvm --version 查看nvm版本
- nvm run 4.2 --version 运行特定版本的 Node
-
nvm exec 4.2 node --version 使用特定node版本作为执行上下文
-
nvm unload shell下卸载nvm
-
nvm reinstall-packages 在当前版本node环境下,重新全局安装指定版本号的npm包
- nvm install 5.0.0 --reinstall-packages-from=4.2 从4.2版本的node导入npm包到5.0.0node版本
四、node 的安装目录
node 的各个版本是安装在 ~/.nvm/versions/node/ 文件夹下,每个版本都是相互独立的,不同版本之间安装的 node 插件也是独立的,比如你在 v14.17.6 版本安装了 cnpm,你想在 v8.17.0 版本用的话你得重新安装一遍 cnpm。
可以用 which node 查看现在用的是哪个版本的 node,或者直接在终端输入 node --version。
五、在项目中使用不同版本的 Node
在项目根目录中创建 .nvmrc 文件来指定要使用的 Node 版本。之后在项目目录中执行 nvm use 即可。.nvmrc 文件内容只需要遵守上文提到的语义化版本规则即可。另外还有个工具叫做 avn,可以自动化这个过程。
六、注意事项
- 安装全局 npm 包时前面不要加 sudo,例如 npm install -g grunt