在不一樣環境下有時候不一樣項目須要切換不一樣版本的 node。node
在同一個機器上切換過 node (特定是 windows 環境)遇到過各類各樣莫名其妙的問題,就知道能無痛一鍵切換 node 是多麼開心的事情了。linux
嘗試過不少工具,最後總結出最理想的就是 nvm 這貨了。git
如下幾個步驟親測在 mac/linux 上都很好用,若是是 windows 的話,也有 nvm-windows 能夠選擇。github
nvm 官方地址:https://github.com/creationix/nvmshell
nvm-windows 官方地址:https://github.com/coreybutler/nvm-windowsnpm
簡單總結下步驟:windows
下載 nvm安全
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.1/install.sh | bashbash
啓動 nvm
$ . ~/.nvm/nvm.shcurl
安裝特定版本的 node
$ nvm install 4.4.2
使用特定版本的 node
$ nvm use 4.2.4
如今就能夠看到 node 版本已經切換
$ node -v
$ npm -v
注意這種切換隻在當前 shell 環境有效,也就是下次從新打開 shell 的話,就退回默認的 node 版本了。
重啓 shell 後須要再重啓 nvm 切換 node 版本。
這樣雖然麻煩了點,可是很是靈活。
以爲重啓麻煩,能夠把如下配置加到 ~/.bashrc、 ~/.profile 或 ~/.zshrc 文件中:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
注意:
文章裏的 nvm 說的不是 https://www.npmjs.com/package/nvm
而是 https://github.com/creationix/nvm
雖然都叫 nvm 但不是同一個東西:
感受是經過 npm 來切換 node/npm 就帶有問題
而徹底是用系統的 shell 來切換,則更爲安全
有同窗說 n 怎麼樣,我最開始也是用的這個工具,優勢是簡單輕量,直接經過 npm install -g n 開箱即用,當它會接管全局安裝的一些依賴,可能帶來一些衝突(我正是由於這個才轉用了 nvm)。nvm 不使用 npm 安裝,有本身的安裝和配置方式,有本身獨立的目錄管理依賴,安裝繁瑣一些,但使用起來感受是更爲靈活。
nvm 和 n 的對比,能夠看看這篇文章:http://taobaofed.org/blog/2015/11/17/nvm-or-n/