使用nvm管理不同版本的node與npm的方法
本文介紹了使用 nvm 管理不同版本的 node 與 npm ,分享給大家,具體如下:
補(bǔ)充說明:Mac 下通過 brew install nvm 所安裝的 nvm ,由于安裝路徑不同,無法正確啟用。建議使用 brew uninstall nvm 卸載掉之后,通過本文的方案重新安裝一次。
最近 NodeJS 的版本更新速度有點(diǎn) Chrome 的跡象,4.0 版本沒發(fā)布多久,又推出了 5.0 。升級(jí) NodeJS 之后可以很方便的開始使用一些 ES6 的語言特性,但又會(huì)導(dǎo)致團(tuán)隊(duì)內(nèi)部的mz-fis 框架無法更新,因?yàn)樗鼤簳r(shí)只支持 v0.12 版本。于是團(tuán)隊(duì)開始試用管理 node 版本的工具 nvm,試用后發(fā)現(xiàn) Mac 下很好用,推薦大家盡快用起來。
nvm 是 Mac 下的 node 管理工具,有點(diǎn)類似管理 Ruby 的 rvm,如果是需要管理 Windows 下的 node,官方推薦是使用 nvmw 或nvm-windows 。
以下具體說下 Mac 系統(tǒng)中的安裝與使用細(xì)節(jié)(Windows 系統(tǒng)僅供類比參考)。
一、卸載已安裝到全局的 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è)的軟鏈
二、安裝 nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
安裝完成后請(qǐng)重新打開終端環(huán)境,Mac 下推薦使用oh-my-zsh 代替默認(rèn)的 bash shell。
三、安裝切換各版本 node/npm
nvm install stable #安裝最新穩(wěn)定版 node,現(xiàn)在是 5.0.0 nvm install 4.2.2 #安裝 4.2.2 版本 nvm install 0.12.7 #安裝 0.12.7 版本 # 特別說明:以下模塊安裝僅供演示說明,并非必須安裝模塊 nvm use 0 #切換至 0.12.7 版本 npm install -g mz-fis #安裝 mz-fis 模塊至全局目錄,安裝完成的路徑是 /Users/<你的用戶名>/.nvm/versions/node/v0.12.7/lib/mz-fis nvm use 4 #切換至 4.2.2 版本 npm install -g react-native-cli #安裝 react-native-cli 模塊至全局目錄,安裝完成的路徑是 /Users/<你的用戶名>/.nvm/versions/node/v4.2.2/lib/react-native-cli nvm alias default 0.12.7 #設(shè)置默認(rèn) node 版本為 0.12.7
四、使用 .nvmrc 文件配置項(xiàng)目所使用的 node 版本
如果你的默認(rèn) node 版本(通過 nvm alias 命令設(shè)置的)與項(xiàng)目所需的版本不同,則可在項(xiàng)目根目錄或其任意父級(jí)目錄中創(chuàng)建 .nvmrc 文件,在文件中指定使用的 node 版本號(hào),例如:
cd <項(xiàng)目根目錄> #進(jìn)入項(xiàng)目根目錄 echo 4 > .nvmrc #添加 .nvmrc 文件 nvm use #無需指定版本號(hào),會(huì)自動(dòng)使用 .nvmrc 文件中配置的版本 node -v #查看 node 是否切換為對(duì)應(yīng)版本
五、nvm 與 n 的區(qū)別
node 版本管理工具還有一個(gè)是 TJ 大神的 n 命令,n 命令是作為一個(gè) node 的模塊而存在,而 nvm 是一個(gè)獨(dú)立于 node/npm 的外部 shell 腳本,因此 n 命令相比 nvm 更加局限。
由于 npm 安裝的模塊路徑均為 /usr/local/lib/node_modules ,當(dāng)使用 n 切換不同的 node 版本時(shí),實(shí)際上會(huì)共用全局的 node/npm 目錄。 因此不能很好的滿足『按不同 node 版本使用不同全局 node 模塊』的需求。
因此建議各位盡早開始使用 nvm ,以免出現(xiàn)全局模塊無法更新的問題。
當(dāng)然,如果你用的是 windows 操作系統(tǒng),我只能說 …… 朋友,能不能早點(diǎn)換個(gè) Mac ,做一個(gè)有品位的程序猿呢:P
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
node微信開發(fā)之獲取access_token+自定義菜單
這篇文章主要介紹了node微信開發(fā)之獲取access_token+自定義菜單,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03如何自動(dòng)化部署項(xiàng)目?折騰服務(wù)器之旅~
這篇文章主要介紹了自動(dòng)化部署項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04win7下安裝配置node.js+express開發(fā)環(huán)境
windows7下安裝nodejs及框架express,從誕生至今一直被熱捧,筆者最近也裝了個(gè)環(huán)境打算了解一下。安裝步驟簡(jiǎn)單比較簡(jiǎn)單,這里分享給大家,希望大家能夠喜歡。2015-12-12Node.js實(shí)現(xiàn)一個(gè)HTTP服務(wù)器的方法示例
這篇文章主要介紹了Node.js實(shí)現(xiàn)一個(gè)HTTP服務(wù)器的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05node.js?中的require用法和import的區(qū)別解析
在Node.js中,require是一個(gè)內(nèi)置的函數(shù),用于在當(dāng)前模塊中加載和緩存其他模塊,這篇文章給大家介紹node.js?中的require用法和import的區(qū)別,感興趣的朋友跟隨小編一起看看吧2024-04-04node-gyp安裝vuetify編譯失敗gyp?ERR的問題及解決
這篇文章主要介紹了node-gyp安裝vuetify編譯失敗gyp?ERR的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03詳解express + mock讓前后臺(tái)并行開發(fā)
這篇文章主要介紹了詳解express + mock讓前后臺(tái)并行開發(fā),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06詳解Node.js開發(fā)中的express-session
express-session?是基于express框?qū)iT用于處理session的中間件,本篇文章主要介紹了詳解Node.js開發(fā)中的express-session,有興趣的可以了解一下<BR>2017-05-05