通常情況下,當(dāng)我們有多個項(xiàng)目來維護(hù)時赠尾,如果各個項(xiàng)目所使用的node版本不一樣力穗,這就需要我們同時來管理多個node版本,這時候我們可以使用nvm或者n來管理气嫁。
使用nvm來管理Node
nvm全稱Node Version Manager,它是通過shell腳本實(shí)現(xiàn)nodejs版本管理的当窗。,windows下用戶官方推薦使用nvmw或nvm-windows寸宵。
安裝
通過CURL
curl -o- curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
通過Wget
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
以上腳本會將nvm倉庫clone到~/.nvm目錄崖面,然后會在~/.bash_profile, ~/.zshrc, ~/.profile, 或 ~/.bashrc
末尾添加source到你的配置文件,當(dāng)然Mac用戶也可以使用Homebrew來安裝梯影,安裝完成以后需要我們再單獨(dú)配置shell巫员。
使用
首先使用nvm ls-remote命令查看當(dāng)前都支持哪些版本的 nodejs,然后挑一個最新的穩(wěn)定版甲棍,使用 nvm install 命令安裝上即可简识。
nvm ls-remote
安裝指定版本:
nvm install <node-version>
安裝完成之后檢查:
node -v
我們也可以用下面命令安裝最新最穩(wěn)定的node版本
nvm install stable
刪除某版本的node
nvm uninstall <node-version>
如刪除v8.4.0,過程中出現(xiàn):
sudo: nvm: command not found
修改下目錄權(quán)限,查看$NVM_DIR
這個變量指向的那個目錄
$ echo $NVM_DIR
/Users/SeanLiu/.nvm
執(zhí)行以下命令:
sudo chown -R SeanLiu "$NVM_DIR/versions/node/v8.4.0"
sudo chmod -R u+w "$NVM_DIR/versions/node/v8.4.0"
再次執(zhí)行刪除命令就可以了:
nvm uninstall 8.4.0
設(shè)置默認(rèn)版本七扰,nvm使用default的alias來實(shí)現(xiàn)默認(rèn)版本奢赂,只要執(zhí)行個命令
nvm alias default <node-version>
nvm alias default 8.9.1
以后再登錄進(jìn)系統(tǒng)時,就默認(rèn)使用的是這個版本了
我們也可以指定使用某個版本的node:
nvm use <node-version>
也可以使用別名設(shè)置默認(rèn)的版本
nvm use default
查看當(dāng)前已經(jīng)安裝的版本:
nvm ls
查看當(dāng)前正在使用的版本:
nvm current
以指定版本執(zhí)行腳本:
nvm run <node-version> myApp.js
卸載nvm
rm -rf ~/.nvm
使用n來管理Node
n是非常簡單易用的node版本管理器,也是Node的一個模塊颈走,作者TJ也是express框架的作者膳灶。
安裝
npm install -g n
安裝完成之后,直接輸入n可以顯示當(dāng)前已經(jīng)安裝的版本和正在使用的版本(前面有一個o),你可以通過移動上下方向鍵來選擇要使用的版本立由,最后按回車生效轧钓。
n
也可以通過CURL來安裝
curl -L https://git.io/n-install | bash
也可以通過如下命令安裝:
git clone https://github.com/visionmedia/n.git
cd n
make install
如果需要安裝到指定目錄,需要在安裝前增加PREFIX前綴,默認(rèn)是安裝在/usr/local/bin/n锐膜,如果將n安裝到~/bin/n
$PREFIX=$HOME make install
n使用
安裝指定版本
n <node-versioin>
如果該版本事先已安裝毕箍,則就使用它
安裝最新版本
n latest
安裝最穩(wěn)定版本
n stable
獲取幫助
n --help
刪除某版本node
n rm <node-version>
以指定的版本來執(zhí)行腳本
n use <node-version> myApp.js
查看某版本node的安裝路徑
n bin <node-version>
nvm與n
- n是作為一個node的模塊而存在,而nvm 是一個獨(dú)立于node/npm的外部 shell 腳本枣耀,因此n比nvm更加局限霉晕。
- 不要同時使用兩者,這樣會導(dǎo)致版本混亂捞奕,可以根據(jù)自己的喜好,選擇其一拄轻。