nvm最佳实践

1. 使用nvm安装node有什么优势?

  • 安装node很方便,只需要一条命令
  • 可以轻松切换node版本
  • 可以多版本node并存

2. 安装

使用 curl安装 nvm

1
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

完成后 nvm 就被安装在了 ~/.nvm 下了,然后在你的profile(~/.bash_profile, ~/.zshrc, ~/.profile)中加入:

1
2
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

3. 下载

nvm 默认是从 node 官网下载的,国外的服务器,必然很慢。查看 ~/.nvm/nvm.sh 我们可看到:

1
2
3
4
# 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 即可。

1
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

然后下载

1
2
3
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 切换也是个麻烦的事情,因为你也不一定能记住这个项目使用了哪个版本,nvmissue 里面有人说如果有人实现这个特性,他愿意付2美刀>_<

I would pay 2$ if somebody implements this feature.

我们希望能够进入目录后,自动使用当前项目设置的 node 版本,首先可以创建一个.nvmrc文件

1
node -v > .nvmrc

然后在 .zshrc 加入一个钩子:

1
2
3
4
5
6
7
autoload -U add-zsh-hook
load-nvmrc() {
if [[ -f .nvmrc && -r .nvmrc ]]; then
nvm use
fi
}
add-zsh-hook chpwd load-nvmrc

这样就万事大吉了。

坚持原创技术分享,您的支持将鼓励我继续创作!