mac中利用NVM管理不同node版本的方法詳解
前言
大家在開始本文的正文之前,建議大家先看看這篇文章:http://m.fzitv.net/article/73424.htm,這篇文章給大家詳細介紹了關于node.js 下使用 nvm 或者 n 來進行版本控制及nvm 安裝node.js 版本后,重啟終端 node , npm 環(huán)境變量失效的相關內容,好了,下面開始本文的正文:
Mac 下通過 brew install nvm 所安裝的 nvm ,由于安裝路徑不同,無法正確啟用。建議使用 brew uninstall nvm 卸載掉之后,通過本文的方案重新安裝一次。
卸載已安裝到全局的 node/npm
如果之前是在官網下載的 node 安裝包,運行后會自動安裝在全局目錄,其中
node 命令在 /usr/local/bin/node ,npm 命令在全局 node_modules 目錄中,具體路徑為 /usr/local/lib/node_modules/npm
安裝 nvm 之后最好先刪除下已安裝的 node 和全局 node 模塊:
npm ls -g --depth=0 #查看已經安裝在全局的模塊,以便刪除這些全局模塊后再按照不同的 node 版本重新進行全局安裝
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 模塊注冊的軟鏈
通過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.20 v0.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/nvm INSTALL_RECEIPT.json LICENSE.md alias bin nvm.sh v5.7.0 v7.2.0
我們可以發(fā)現透過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.7 Now using node v5.7.0
切換成別的版本:
$ nvm use --delete-prefix 7 Now using node v7.2.0
不過問題來了,如果你另外開一個shell視窗,並輸入nvm,會發(fā)現current version是空的:
$ nvm ls v0.10.24 v0.11.10 current:
這是因為利用nvm use指令只會在當前的shell生效,當你開了新的shell就會發(fā)現$PATH的值已經不包含剛才設定的node目錄了。
要解決這個問題就是利用
$ nvm alias default <version>
來設定一個預設的node版本:
$ nvm alias default 5.7.0 default -> 5.7 (-> v5.7.0)
此時再打開另一個shell視窗,就可以直接使用你所設定的node版本了。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Node.js中path.join()優(yōu)勢例舉分析
在本篇文章里小編給大家整理的是一篇關于Node.js中path.join()優(yōu)勢例舉分析,有興趣的朋友們可以學習下。2021-08-08
connect中間件session、cookie的使用方法分享
今天大象哥用了下connect的session和cookie,感覺還挺好用的,分享一下(里面坑挺多的,文檔寫的太模糊了,費了哥不少時間)。2014-06-06
nodejs+mongodb+vue前后臺配置ueditor的示例代碼
本篇文章主要介紹了nodejs+mongodb+vue前后臺配置ueditor的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
Node.js?搭建后端服務器內置模塊(?http+url+querystring?的使用)
這篇文章主要介紹了Node.js搭建后端服務器內置模塊(http+url+querystring的使用),文章圍繞主題展開詳細的內容戒殺,具有一定的參考價值,需要的朋友可以參考一下2022-09-09

