nvm的安装与使用(Mac 版)
NVM介绍
nvm官网:https://nvm.uihtm.com/
nvm(node version manager)是一个用于管理nodejs版本的工具。有时我们的项目可能会依赖于不同版本的nodejs,需要进行node版本的切换,可能就是到官网下载、覆盖安装、当要回退时又得下载会原来版本、覆盖安装...这样子太麻烦了。那么nvm就是为解决这个问题而生的,让你方便快捷地切换node版本。
删除本地node
安装nvm前先记住当前已安装的node版本号、然后将其卸载删除。
(原因:1、清除多余的node环境,用nvm集中管理node;2、避免出现冲突)
依次在终端执行以下命令,删除node
sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.* sudo rm -rf /usr/local/include/node /Users/$USER/.npm sudo rm /usr/local/bin/node sudo rm /usr/local/share/man/man1/node.1 sudo rm /usr/local/lib/dtrace/node.d
然后检查下:
node //command not found npm //command not found
安装nvm
目前nvm最新版本v0.34.0
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
常见问题
通过 nvm -v 命令检查是否成功。如果出现下面提示:
nvm: command not found
通过阅读nvm文档,里面有提到,如果出现这个问题原因可能是系统缺少.bash_profile文件,按照以下步骤操作:
1.在终端输入touch ~/.bash_profile
2.在终端输入source ~/.bash_profile
此时,如果还是找不到nvm的话
3.在终端输入. ~/.nvm/nvm.sh
这个时候,终于成功了。
但是这个时候,关闭终端后,仍然报错:zsh: command not found:
解决方案:
1、查看目录下是否有配置文件 .bash_profile 如果没有新建一个,并在其中写入:
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
2、使 .bash_profile 生效
source ~/.bash_profile
3、配置 .zshrc 文件:查看是否存在,没有则新建,并在其中写入:
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 PATH=/bin:/usr/bin:/usr/local/bin:${PATH} export PATH
4、使 .zshrc生效
source ~/.zshrc
5、验证生效
重新打开一个终端,执行nvm -v
,如果有版本号,则表明安装成功
nvm的使用
nvm install stable // 安装最新稳定版 node nvm install <version> // 安装指定版本 (install v10.15.0或install 10.15.0) nvm uninstall <version> // 卸载指定版本node,(如果删除的为当前使用版本,要解绑,则执行 nvm deactivate) nvm use <version> // 切换使用指定的版本node nvm current // 显示当前使用的版本 nvm ls // 列出所有安装的版本 nvm ls-remote // 列出官网上node的所有版本 nvm alias <name> <version> // 给不同的版本号添加别名 nvm unalias <name> // 删除已定义的别名 nvm alias default <version> // 指定默认版本(设定后需要打开新的终端才生效) nvm deactivate // 解除当前版本绑定