首先说说常规的安装
1. 下载nvm,使用nvm来管理Node版本
-
官方文档
windows 版本 https://github.com/coreybutler/nvm-windows
mac 版本 https://github.com/creationix/nvm#install-script
-
命令行 尽量不要用brew,免得掉坑
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
2. 使用nvm来下载node,并管理node版本
-
常见命令
nvm install stable ## 安装最新稳定版 node nvm install <version> ## 安装指定版本 nvm uninstall <version> ## 删除已安装的指定版本 nvm use <version> ## 切换使用指定的版本node nvm ls ## 列出所有安装的版本 nvm ls-remote ## 列出所有远程服务器的版本 nvm current ## 显示当前的版本 nvm alias <name> <version> ## 给不同的版本号添加别名 nvm unalias <name> ## 删除已定义的别名 nvm reinstall-packages <version> ## 在当前版本 node 环境下,重新全局安装指定版本号的 npm 包 nvm alias default [node版本号] ##设置默认版本
上面的安装大家都可以信手拈来,这里就不赘述,主要说一下这其中有个大家需要注意的坑点。敲重点啦!
坑点一:安装之前必须把本地环境清理干净
在安装node前,首先要考虑后续会不会切换版本,如果需要,必须要求nvm在Node安装之前
-
先安装nvm
-
在通过nvm安装自己需要的node
否则,在nvm安装之前的安装的node是不会被nvm管理起来的!
那如果已经安装了node,却还要使用nvm管理版本的话,怎么办?我很不幸的告诉你,你需要删除已安装的node。
下面是删除的Node和npm的命令,在终端中执行即可。
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
坑点二:关闭终端nvm失效,区分zsh和bash
对于一般的终端,默认是bash窗口,所以在安装完nvm后,根据如下图提示,进行操作
配置环境变量(无 .bash_profile)
-
添加 .bash_profile在终端键入
touch ~/.bash_profile
-
打开 .bash_profile在终端键入
open -e .bash_profile
-
在 .basn_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
-
配置生效
source ~/.bash_profile
如果你的终端是zsh,请往下看
配置环境变量(一般根目录都没有这个文件)
-
添加 .zshrc在终端键入
touch ~/.zshrc
-
打开 .zshrc在终端键入
open -e .zshrc
-
在 .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
-
配置生效
source ~/.zshrc
坑点三:切换node版本失效
node版本失效,网络上有好多解决方案,大家应该也可以找到
# 将要切换的版本设置为default
nvm alias default 8.16.0
# 切换版本,这样在那个窗口都可以使用切换后的版本
nvm use 8.16.0
最后鸣谢:
https://segmentfault.com/q/1010000004858041/a-1020000018860796
https://www.jianshu.com/p/1c0ad9c8072c
https://www.jianshu.com/p/4455f0073ed5
https://juejin.im/post/5cdb62fc5188250d8b2df0de