mac中利用NVM管理不同node版本的方法詳解
前言
大家在開(kāi)始本文的正文之前,建議大家先看看這篇文章:http://chabaoo.cn/article/73424.htm,這篇文章給大家詳細(xì)介紹了關(guān)于node.js 下使用 nvm 或者 n 來(lái)進(jìn)行版本控制及nvm 安裝node.js 版本后,重啟終端 node , npm 環(huán)境變量失效的相關(guān)內(nèi)容,好了,下面開(kāi)始本文的正文:
Mac 下通過(guò) brew install nvm
所安裝的 nvm ,由于安裝路徑不同,無(wú)法正確啟用。建議使用 brew uninstall nvm
卸載掉之后,通過(guò)本文的方案重新安裝一次。
卸載已安裝到全局的 node/npm
如果之前是在官網(wǎng)下載的 node 安裝包,運(yùn)行后會(huì)自動(dòng)安裝在全局目錄,其中
node 命令在 /usr/local/bin/node ,npm 命令在全局 node_modules 目錄中,具體路徑為 /usr/local/lib/node_modules/npm
安裝 nvm 之后最好先刪除下已安裝的 node 和全局 node 模塊:
npm ls -g --depth=0 #查看已經(jīng)安裝在全局的模塊,以便刪除這些全局模塊后再按照不同的 node 版本重新進(jìn)行全局安裝 sudo rm -rf /usr/local/lib/node_modules #刪除全局 node_modules 目錄 sudo rm /usr/local/bin/node #刪除 node cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm #刪除全局 node 模塊注冊(cè)的軟鏈
通過(guò)nvm來(lái)管理
場(chǎng)景:同組的同事使用node版本是5.7.0,而本機(jī)安裝了node 7.2.0,如何兼容?
使用nvm管理。
- 使用Homebrew安裝nvm
- 使用nvm安裝Node.js
- 使用nvm無(wú)痛切換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.20 v0.10.21
安裝:
nvm install <version>
比如:
nvm install v5.7.0
還有
nvm install v7.2.0
使用nvm無(wú)痛切換Node.js版本
nvm會(huì)把各個(gè)版本的node安裝在/usr/local/opt/nvm底下??梢钥纯丛撃夸浀紫路帕四男〇|西:
$ ls /usr/local/opt/nvm INSTALL_RECEIPT.json LICENSE.md alias bin nvm.sh v5.7.0 v7.2.0
我們可以發(fā)現(xiàn)透過(guò)nvm安裝這兩個(gè)版本,事實(shí)上會(huì)在nvm目錄下另外建立了v5.7.0以及v7.2.0兩個(gè)目錄來(lái)分別存放node的binary檔。又nvm會(huì)在你的$PATH最前面安插指定版本的目錄,透過(guò)這個(gè)方式你在使用node指令時(shí)就會(huì)用指定的版本來(lái)運(yùn)作了。
實(shí)際確認(rèn)PATH的值看看:
$ echo $PATH /usr/local/opt/nvm/v5.7.0/bin: ...
查看當(dāng)前可用版本
nvm ls
切換版本:
nvm use <version>
比如
nvm use --delete-prefix v5.7.0
也可以偷懶一點(diǎn),不用打完整的版號(hào):
$ nvm use --delete-prefix 5.7 Now using node v5.7.0
切換成別的版本:
$ nvm use --delete-prefix 7 Now using node v7.2.0
不過(guò)問(wèn)題來(lái)了,如果你另外開(kāi)一個(gè)shell視窗,並輸入nvm,會(huì)發(fā)現(xiàn)current version是空的:
$ nvm ls v0.10.24 v0.11.10 current:
這是因?yàn)槔胣vm use指令只會(huì)在當(dāng)前的shell生效,當(dāng)你開(kāi)了新的shell就會(huì)發(fā)現(xiàn)$PATH的值已經(jīng)不包含剛才設(shè)定的node目錄了。
要解決這個(gè)問(wèn)題就是利用
$ nvm alias default <version>
來(lái)設(shè)定一個(gè)預(yù)設(shè)的node版本:
$ nvm alias default 5.7.0 default -> 5.7 (-> v5.7.0)
此時(shí)再打開(kāi)另一個(gè)shell視窗,就可以直接使用你所設(shè)定的node版本了。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
利用Node.js編寫跨平臺(tái)的spawn語(yǔ)句詳解
Node.js 最強(qiáng)大的一點(diǎn)就是“跨平臺(tái)”。只要在編碼時(shí)稍微注意一下,你的代碼就通吃 Windows、Linux 和 OSX 平臺(tái)。下面這篇文章主要介紹了如何利用Node.js編寫跨平臺(tái)的spawn語(yǔ)句,需要的朋友可以參考借鑒。2017-02-02nodejs實(shí)現(xiàn)超簡(jiǎn)單生成二維碼的方法
這篇文章主要介紹了nodejs實(shí)現(xiàn)超簡(jiǎn)單生成二維碼的方法,結(jié)合實(shí)例形式分析了nodejs基于qr-image插件生成二維碼的相關(guān)操作技巧,需要的朋友可以參考下2018-03-03NodeJs之word文件生成與解析的實(shí)現(xiàn)代碼
這篇文章主要介紹了NodeJs之word文件生成與解析的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04在Node.js中將SVG圖像轉(zhuǎn)換為PNG,JPEG,TIFF,WEBP和HEIF格式的方法
這篇文章主要介紹了在Node.js中將SVG圖像轉(zhuǎn)換為PNG,JPEG,TIFF,WEBP和HEIF格式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08node管理統(tǒng)計(jì)文件大小并顯示目錄磁盤空間狀態(tài)從零實(shí)現(xiàn)
這篇文章主要為大家介紹了node管理統(tǒng)計(jì)文件大小并顯示目錄磁盤空間狀態(tài)的從零實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12node.js連接mongoDB數(shù)據(jù)庫(kù) 快速搭建自己的web服務(wù)
這篇文章主要為大家詳細(xì)介紹了node.js連接mongoDB數(shù)據(jù)庫(kù),如何快速搭建自己的web服務(wù),感興趣的小伙伴們可以參考一下2016-04-04node.js微信公眾平臺(tái)開(kāi)發(fā)教程
這篇文章主要為大家分享了node.js微信公眾平臺(tái)開(kāi)發(fā)教程,如何進(jìn)行微信開(kāi)發(fā),感興趣的小伙伴們可以參考一下2016-03-03