在前端飛速發展的這個時代, node 的出現也讓更多不可能的事情變成可能. 隨即出現的一個問題就是不同的專案可能會存在不同 node, 如果更好的管理 node 版本, 解放人的工作量開始成為一個問題. 本文使用 nvm 和 avn 來解決這個問題.
NVM
下載
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
複製程式碼
注意: 可檢視官網, 中間版本號會改變
環境變數
加入到配置檔案中,可能是(~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc ) 我這邊使用了 zsh,所以直接加入到~/.zshrc 中即可 配置如下:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
複製程式碼
執行
$ source .zshrc
複製程式碼
這個時候就可以退出終端,重新開啟終端,驗證是否安裝成功.再次進入終端 輸入
$ nvm --version
複製程式碼

下載
$ nvm install v6.10.3
複製程式碼
檢視已安裝版本
$ nvm ls
複製程式碼

切換版本
$ nvm use v6.10.3
複製程式碼

檢視版本

啟動多個終端可以切換多個版本的 node,意思就是可以同時開啟多個版本的 node 專案, 而不用擔心 node 版本不統一
此時,雖然可以自由切換版本,在已安裝 node 所有版本的時候,每次切換專案都需要手動來改變 node 版本, 更有可能這個時候你不知道該專案使用的 node 是多少,
所以,我們給專案加上一個 node 版本控制檔案,用來記錄當前專案使用的 node 版本是多少
在專案的根目錄新增檔案.node-version,其中寫上 v6.10.3,表示該專案使用的 node 版本是 6.10.3 這時候,所有的專案的根目錄都有了一個這樣的檔案,但是這個時候需要每個開發人員開啟專案都要去看一下, 這個專案使用的是哪個版本的 node,依然沒有解放多少生產力 so,我們需要一個東西來解放我們的生產力,用來自動切換 node 版本的工具
AVN
安裝
$ npm install -g avn avn-nvm
複製程式碼
配置環境變數
$ avn setup
複製程式碼
centos 上親測無效, 需要手動加入配置
[[ -s "$HOME/.avn/bin/avn.sh" ]] && source "$HOME/.avn/bin/avn.sh"
複製程式碼
執行配置檔案
$ source xxxx
複製程式碼
成功
配置檔案同上面,這個時候進入專案

失敗
顯示該 node 版本啟用成功,如果該專案的 node 版本你沒有安裝過,這個時候進入專案:

自此,打完收工~~
原部落格地址: blog.julysong.com/2018/05/30/…