nvm 是 Node.js 的版本管理工具,可以创建不同版本 Node 的隔离环境,从而避免不同版本包之间的干扰。官方 github
卸载全局安装的Node
最近在做项目的时候,发现编译速度特别慢,而升级 Node 版本之后速度会明显提升。所以这才有使用 nvm 来管理 Node 的故事。
目前本地全局安装的 Node 版本是 9.11.1, 这个版本还是18年4月左右更新的,是相当的跟不上节奏了。这里可以查看 Node 历史版本。
安装 nvm 之前最好是将现有的全局 Node 进行卸载,否则会发生冲突。
-
终端下查看
Node的全局安装目录:ccp:~ ccp$ which node /usr/local/bin/node -
Mac环境下全局的Node会被安装在/usr/local/bin/目录下,接下来我们要打开这个目录; -
打开访达,然后按下快捷键
⇧ + ⌘ + G,输入上面的目录,即可打开对应的目录; -
接下来依次检查并且删除这些目录下的
node和node_modules相关文件和文件夹:/usr/local/lib/usr/local/include
-
打开
/usr/local/bin并删除node可执行文件; -
如果你是使用的
brew install node安装的Node,那么你还需要在终端中执行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
至此,全局安装的 Node 才算卸载干净。
安装nvm
-
在终端里执行如下脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash然后在终端输入命令
command -v nvm,如果显示nvm则表示安装成功;否则如果显示nvm: command not found,则需要做如下操作: -
在
.nvm同级目录下创建.bash_profile文件,终端键入如下命令:touch ~/.bash_profile -
把以下代码贴到上面的文件中:
export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh
nvm常用命令
nvm ls-remote查看Node远程版本库nvm install node将安装最新版本的Nodenvm install v12.7.0将安装12.7.0版本的Nodenvm uninstall v12.7.0卸载12.7.0版本的Nodenvm ls查看已经安装的Node版本nvm use v12.7.0切换12.7.0为当前使用的版本nvm alias default v12.7.0将12.7.0设置为Node的默认版本nvm which v12.7.0查看12.7.0版本的Node的安装目录,比如:/Users/ccp/.nvm/versions/node/v12.7.0/bin/nodenvm --help查看更多命令用法
其他相关命令
command -v nvm查看nvm是否安装成功node -v查看当前使用的Node版本which node查看当前Node的安装目录
其他问题
- 由于
Node版本的升级,所以当编译项目的时候可能会报依赖包的错误,这个时候就需要升级依赖包,将项目的node_modules目录删了,重新执行npm install。 - 升级
Node后,由于内存2048M的限制,编译项目的时候很有可能会报JS stack trace内存溢出的错误,这个时候可以用increase-memory-limit来解决。