多個(gè)Node.js版本之間切換

本篇文章會(huì)講windows和Mac系統(tǒng)下實(shí)現(xiàn)多個(gè)node.js版本之間的切換。

1.windows下采用nvm(nvm-window)

2.Mac下采用nvmn

注:window和mac下的nvm地址是不一樣的

一、windows系統(tǒng)

什么是nvm?

nvm是一個(gè)簡單的bash腳本,它是用來管理系統(tǒng)中多個(gè)已存的Node.js版本

配置步驟

1.先卸載掉本系統(tǒng)中原有的node版本(也可以不卸載,我覺得吧還是卸載吧,以免會(huì)有沖突。反正我是卸了);

卸載我就不細(xì)講了,在控制面板的程序和功能中就可以卸載掉。

2.去github上下載nvm安裝包

下載地址:https://github.com/coreybutler/nvm-windows/releases

下載說明

之后就是安裝了,解壓雙擊exe文件傻瓜安裝。

需要注意的是安裝路徑最好是C:\nvm,默認(rèn)的路徑安裝成功后,在切換node版本時(shí)會(huì)有問題。

還有就是在安裝成功后,會(huì)自動(dòng)配置系統(tǒng)變量。這里不用管,只是知道有這么一回事就行了,以免以后修改環(huán)境變量的時(shí)候不要誤操作了就好。

截一下圖吧:


變量

NVM_HOME:nvm的安裝目錄

NVM_SYMLINK:node的安裝目錄

環(huán)境變量:

對(duì)了下載完找到nvm的安裝目錄,打開setting.txt文件,添加上下面兩個(gè)配置:

nvm node_mirror?https://npm.taobao.org/mirrors/node/

nvm npm_mirror?https://npm.taobao.org/mirrors/npm/

上截圖吧


setting配置

這一步可做可不做,配置的目的是將npm鏡像切換到淘寶的鏡像,可以提高下載速度。(就是喜歡這種快感)

接下來驗(yàn)證一下是否安裝成功

在cmd中輸入:nvm 出現(xiàn)下圖既成功

成功截圖

3.安裝node

安裝node首先得知道有哪些node版本,不然肯定會(huì)報(bào)錯(cuò)的了(這就是廢話)

可以在這看:https://github.com/coreybutler/nodedistro/blob/master/nodeversions.json

不推薦在這看,原因1.打開github網(wǎng)站較慢。2.這上面的版本并不是最新的

還可以直接使用命令查看: nvm list available

node版本列表

之后就使用nvm命令下載nodejs

(1)我以10.13.0版本為例

npm install 10.13.0

(2)使用nvm use 10.13.0命令,切換node版本為10.13.0

nvm use 10.13.0

注意:這點(diǎn)很重要,安裝完后緊接著就用nuv use命令使用,不然你就是用不了這個(gè)node版本了。(這是個(gè)坑啊,MD,浪費(fèi)了我一上午的時(shí)間,此處省略一萬字,應(yīng)了一句話餃子要吃燙燙的)

假如真的是切換不了這個(gè)版本了,用nvm uninstall 10.13.0卸載這個(gè)版本再重新安裝即可。

(3)使用nvu list查看所有下載的node版本,以及當(dāng)前是哪個(gè)版本(當(dāng)前是10.13.0這個(gè)版本,我順道下了9.3.0和12.13.1這兩個(gè)版本)

nvu list

(4)運(yùn)行一下node命令看一下是否成功


查看node版本

出現(xiàn)這個(gè)就可以了? 至此nvm安裝成功

常用的一些nvm命令

nvm install <version> [arch]:該可以是node.js版本或最新穩(wěn)定版本latest。(可選[arch])指定安裝32位或64位版本(默認(rèn)為系統(tǒng)arch)。設(shè)置[arch]為all以安裝32和64位版本。

nvm list [available]:列出已經(jīng)安裝的node.js版本。可選的available,顯示可下載版本的部分列表。這個(gè)命令可以簡寫為nvm ls [available]。

nvm uninstall <version>: 卸載指定版本的nodejs。

nvm use [version] [arch]: 切換到使用指定的nodejs版本。可以指定32/64位[arch]。

還有一些其他的命令就不一一距舉例了


二、Mac系統(tǒng)

mac系統(tǒng)安裝nvm和n這兩個(gè)其中的一種就行

先來說 n

下面是三種安裝方式(選擇其中一種就行)

(1)如果你的mac上已經(jīng)有了node,就可以直接使用npm命令安裝

npm install -g n

安裝后,將版本n緩存在環(huán)境變量指定的目錄的node子目錄n/versions中N_PREFIX,默認(rèn)為/usr/local;?而主動(dòng)?node版本直接安裝在N_PREFIX。

為了避免需要sudo的n和npm全球的安裝,建議您或者使用安裝到你的主目錄N_PREFIX,或采取系統(tǒng)目錄的所有權(quán):

# make cache folder (if missing) and take ownership

sudo mkdir -p /usr/local/nsudo chown -R $(whoami) /usr/local/n

# take ownership of node install destination folders

sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

(2)如果沒有node,也可以通過另一種方式安裝

curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n

bash n lts

# Now node and npm are available

(3)使用第三方安裝

curl -L https://git.io/n-install | bash



因?yàn)槲乙呀?jīng)有了node,這里我是通過第一種方式安裝的。

1.先來執(zhí)行npm install -g n

安裝n

2.查看一下安裝是否成功 n --version

查看n的版本

3.直接運(yùn)行n,會(huì)提示沒有可以切換的node版本,雖然以前已經(jīng)安裝過node ,但是還是要安裝一下才可以進(jìn)行切換

查看安裝的node版本,圖中表示沒有安裝node

4.安裝node版本,n 10.13.0

安裝node版本

如果在安裝的過程中遇到Error: sudo required

此時(shí)使用sudo n 10.13.0即可

使用sudo安裝node

命令格式為:n node-version

如:n 10.13.0? ?安裝10.13.0版本

? ? ? n latest? ?安裝最新的官方發(fā)布

? ? ?n stable? ?安裝穩(wěn)定的官方發(fā)布

? ? ?n lts? ??安裝最新的LTS官方版本

我的Mac系統(tǒng),所有已經(jīng)安裝的node版本存放路徑:/usr/local/n/versions/node

5.切換node版本

先執(zhí)行n?

查看已經(jīng)安裝的node版本,選中的為當(dāng)前node版本

鍵盤上下鍵選擇版本,之后回車切換版本

這時(shí)候會(huì)出現(xiàn)如下報(bào)錯(cuò),也是無權(quán)限,解決辦法有三個(gè):


無權(quán)限

(1)直接用 sudo n,之后再選擇node版本,回車就好了。

?sudo n

(2)sudo su 切換至root用戶,之后在用n查看版本,之后再選擇node版本,回車就好了。

sudo su

(3)用sudo n 10.13.0 沒錯(cuò)這就是安裝命令,如果這個(gè)版本沒有安裝時(shí),則安裝這個(gè)版本,如果這個(gè)版本已經(jīng)安裝了,則切換的這個(gè)node版本。

sudo n

切換完看一下這個(gè)node版本node -v

node -

完美,安裝完成。

奧對(duì)了? 如果想卸載某個(gè)node版本直接 n rm 10.13.0 就可以了(沒有權(quán)限就加上sudo)

最后有些同學(xué)存在切換并不好使的情況,我沒有遇到,但是那我也是嘗試這去看以一些帖子,推薦一個(gè)吧:https://blog.csdn.net/ruffaim/article/details/83578710

以后我要是遇到此類問題,我會(huì)及時(shí)來更新文章的


再來說說Mac下使用nvm吧

總體來說和window下使用nvm差不了太多

安裝nvm還是建議先把原有node卸載,不要問我為什么,我也不知道,大幾率會(huì)出問題

下面是卸載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.33.2/install.sh?| bash

之后輸入 nvm ,當(dāng)看到有輸出時(shí),說明安裝成功,如果說nvm沒有找到command not found,說明安裝失敗

在?.bash_profile 文件中加入以下代碼,配置環(huán)境變量。

export NVM_DIR="$HOME/.nvm"

[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

編輯完成后直接保存文件。

然后終端輸入“source .bash_profile”,更新配置過的環(huán)境變量。

如果沒有這個(gè)文件,可以創(chuàng)建一個(gè)。參考學(xué)習(xí)的文章:http://blog.sina.com.cn/s/blog_8444778b0102x68e.html


至此nvm也就安裝好了,具體的使用方法直接參考window下的nvm操作就好了,具體詳情請(qǐng)看window部分


常用的一些nvm 命令

nvm install stable //安裝最新版?

nodenvm install [node版本號(hào)] //安裝指定版本的

nodenvm use [node版本號(hào)] //切換到指定版本的node

nvm alias default [node版本號(hào)] //設(shè)置默認(rèn)版本


好了, 整理了一天,終于整完了,我只能說都是坑啊,愿所有同學(xué)此生再無bug

小白一只,不喜勿噴。如有錯(cuò)誤或不妥之處,還敬請(qǐng)大佬指正。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,673評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,668評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,004評(píng)論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評(píng)論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,173評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,705評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,426評(píng)論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,656評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,833評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評(píng)論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,371評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,621評(píng)論 2 380