1. 使用nvm安装node有什么优势?
安装node很方便,只需要一条命令 可以轻松切换node版本 可以多版本node并存
2. 安装
使用 curl安装 nvm:
curl -o- http://mirrors.xtcoder.top/software/nvm/v0.39.5/install.sh | bash
完成后 nvm 就被安装在了 ~/.nvm 下了,然后在你的profile(~/.bash_profile, ~/.zshrc, ~/.profile)中加入:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
3. 下载
nvm 默认是从 node 官网下载的,国外的服务器,必然很慢。查看 ~/.nvm/nvm.sh 我们可看到:
# Setup mirror location if not already set
if [ -z "${NVM_NODEJS_ORG_MIRROR-}" ]; then
export NVM_NODEJS_ORG_MIRROR="https://nodejs.org/dist"
fi
nvm 支持从镜像服务器下载包,所以我们只要添加一个环境变量 NVM_NODEJS_ORG_MIRROR 即可。
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
然后下载
nvm install 8.11.1 #下载8.11.1
nvm use 8.9.0 #使用8.9.0
nvm alias default 6.10.0 #设置默认版本
4. 自动切换
不同的项目我们可能使用不同的 node 版本,老是使用 nvm use 切换也是个麻烦的事情,因为你也不一定能记住这个项目使用了哪个版本,nvm 的 issue 里面有人说如果有人实现这个特性,他愿意付2美刀>_<
I would pay 2$ if somebody implements this feature.
我们希望能够进入目录后,自动使用当前项目设置的 node 版本,首先可以创建一个.nvmrc文件
node -v > .nvmrc
然后在 .zshrc 加入一个钩子:
autoload -U add-zsh-hook
load-nvmrc() {
if [[ -f .nvmrc && -r .nvmrc ]]; then
nvm use
fi
}
add-zsh-hook chpwd load-nvmrc