通过nvm来管理
场景:同组的同事使用node版本是5.7.0,而本机安装了node 7.2.0,如何兼容?
使用nvm管理。
使用Homebrew安裝nvm
使用nvm安裝Node.js
使用nvm無痛切換Node.js版本
安装nvm
brew install nvm
使nvm生效
source $(brew --prefix nvm)/nvm.sh
或者:
echo "source $(brew --prefix nvm)/nvm.sh" >> .bash_profile. ~/.bash_profile
使用nvm安裝Node.js
nvm ls-remote
查看可用版本:
v0.10.20v0.10.21
安装:
nvm install <version>
比如:
nvm install v5.7.0
还有
nvm install v7.2.0
使用nvm無痛切換Node.js版本
nvm會把各個版本的node安裝在/usr/local/opt/nvm底下。可以看看該目錄底下放了哪些東西:
$ ls /usr/local/opt/nvmINSTALL_RECEIPT.json LICENSE.md alias bin nvm.sh v5.7.0 v7.2.0
我們可以發現透過nvm安裝這兩個版本,事實上會在nvm目錄下另外建立了v5.7.0以及v7.2.0兩個目錄來分別存放node的binary檔。又nvm會在你的$PATH最前面安插指定版本的目錄,透過這個方式你在使用node指令時就會用指定的版本來運作了。
實際確認PATH的值看看:
$ echo $PATH/usr/local/opt/nvm/v5.7.0/bin: ...
查看当前可用版本
nvm ls
切换版本:
nvm use <version>
比如
nvm use --delete-prefix v5.7.0
也可以偷懶一點,不用打完整的版號:
$ nvm use --delete-prefix 5.7Now using node v5.7.0
切換成別的版本:
$ nvm use --delete-prefix 7Now using node v7.2.0
不過問題來了,如果你另外開一個shell視窗,並輸入nvm,會發現current version是空的:
$ nvm ls v0.10.24 v0.11.10current:
這是因為利用nvm use指令只會在當前的shell生效,當你開了新的shell就會發現$PATH
的值已經不包含剛才設定的node目錄了。 要解決這個問題就是利用
$ nvm alias default <version>
來設定一個預設的node版本:
$ nvm alias default 5.7.0default -> 5.7 (-> v5.7.0)
此時再打開另一個shell視窗,就可以直接使用你所設定的node版本了。