自动切换项目的node版本

问题场景

当线上服务器跟本地开发环境的node版本不一致时,可能出现开发时没问题,但部署时失败或者部署上线后运行出错的问题。

解决思路

在项目目录下,配置node的版本,当cd到该目录时,自动按照配置切换node版本

效果图

自动切换项目的node版本


如图可见我的默认node版本时5.2.0,然后cd到auto-check-node-version目录下时,node版本按照配置切换到了4.2.2版本

具体实现
  • 首先需要安装有shell工具 oh my zsh。(就算不打算配置本文所说内容,也强烈推荐安装oh my zsh,可以先去了解一下,我想了解过后,肯定会爱上它的)

  • 有了zsh,然后需要安装一款主题,叫做spaceship github地址

    curl -o - https://raw.githubusercontent... | zsh

  • 安装完spaceship主题后,shell窗口就已经自动显示node版本,但要做到自动切换,还需要继续配置,vim ~/.zshrc 启动编辑,在最后面添加:

     # auto check node version
     autoload -U add-zsh-hook
     load-nvmrc() {
     if [[ -f .nvmrc && -r .nvmrc  ]]; then
         nvm use
     fi
     }
     add-zsh-hook chpwd load-nvmrc
     load-nvmrc
  • 最后在项目根目录下配置.nvmrc 指定希望的node版本即可。

结语

通过这样的方式,就可以在开发机上自动给项目指定运行的node版本了,而不用手动切换,同时,shell窗口自动显示node版本的功能也很赞。