最近,在下載別人的開(kāi)源項(xiàng)目進(jìn)行學(xué)習(xí)的時(shí)候,總是因?yàn)?nbsp;Node 環(huán)境問(wèn)題導(dǎo)致沒(méi)法依賴(lài)無(wú)法正常安裝,因?yàn)槿思议_(kāi)源項(xiàng)目限制了一定要高于某個(gè)版本,差點(diǎn)勸退了我。
Node版本限制
因?yàn)槠綍r(shí)偶爾寫(xiě)寫(xiě)蘑菇的前端代碼,所以我本地安裝的 Node.js 版本一直是 14.x,由于不同 Node 版本之間也沒(méi)有很好的兼容,所以會(huì)出現(xiàn)各種詭異的版本依賴(lài)報(bào)錯(cuò)。按照原來(lái)的做法,我是直接在 Node 官網(wǎng)又下載一個(gè)版本,然后把環(huán)境變量改成對(duì)應(yīng)版本的,這樣就可以正常安裝了。等到使用完后,再修改回原來(lái)的版本,這一來(lái)一回真是太折騰人了。
這個(gè)問(wèn)題應(yīng)該在我們?nèi)粘i_(kāi)發(fā)中應(yīng)該會(huì)經(jīng)常遇到,尤其是喜歡上開(kāi)源網(wǎng)站上下載別人項(xiàng)目搗鼓的同學(xué),每個(gè)項(xiàng)目之間的技術(shù)棧不同,使用的 Node 版本也各不相同,如果沒(méi)有一個(gè)管理工具,那上面我的那種方式將會(huì)特別麻煩,直到我在網(wǎng)上沖浪的時(shí)候,發(fā)現(xiàn)別人都在使用 nvm 進(jìn)行任意 Node 版本的切換,真是泰褲辣。
多個(gè)Node版本切換
nvm是什么
nvm 全英文也叫 node.js version management,是一個(gè) nodejs 的版本管理工具,為了解決 node.js 各種版本存在不兼容現(xiàn)象,可以通過(guò)它可以安裝和切換不同版本的 node.js。
這不就是為我這種開(kāi)源學(xué)習(xí)者量身定制的么,后悔沒(méi)早點(diǎn)安裝它。
另外 nvm 也是完全開(kāi)源的,如果是 windows 用戶的話,可以直接訪問(wèn)開(kāi)源的 Github 項(xiàng)目 nvm-windows。
https://github.com/coreybutler/nvm-windows
- 1.
如果是 mac 或者 linux 系統(tǒng)的用戶的話,去下載 nwm 即可
https://github.com/nvm-sh/nvm
- 1.
這里說(shuō)一下:nvm 和 nvm-windows 的區(qū)別
- nvm:Node.js 版本管理工具的原始實(shí)現(xiàn),可以在 macOS 和 Linux 等類(lèi) Unix 系統(tǒng)上運(yùn)行。
- nvm-windows:專(zhuān)為 Windows 操作系統(tǒng)開(kāi)發(fā)的 Node.js 版本管理工具,以在 Windows 上輕松管理 Node.js 版本。
但是雖然這兩個(gè)開(kāi)源軟件名字是不同,他們的命令和使用是完全一致的,這個(gè)小伙伴根據(jù)自己的操作系統(tǒng)自行選擇即可。
同時(shí),除了這里提到的 nvm 和 nvm-windows 外,還有另外一款桌面級(jí)的Node.js 版本管理軟件:nvm-desktop
- nvm-desktop:是一個(gè)以可視化界面操作方式管理多個(gè) Node 版本的桌面應(yīng)用,使用 Electron 構(gòu)建(支持 Macos 和 Windows 系統(tǒng))。通過(guò)該應(yīng)用,您可以快速安裝和使用不同版本的 Node。
如果覺(jué)得命令的方式來(lái)操作 Node 版本切換過(guò)于麻煩 ,小伙伴也可以使用 nvm-desktop ,在下文中,陌溪也會(huì)親自體驗(yàn)一波。
nvm下載
首先,我使用的是 Windows 電腦,所以需要去 Github Release 發(fā)行版去下載 nvm-windows
nvm-windows下載地址:
https://github.com/coreybutler/nvm-windows/releases/tag/1.1.11
- 1.
- 2.
然后選擇 exe 結(jié)尾的可執(zhí)行文件,點(diǎn)擊下載即可
圖片
下載nvm
下載完成后,直接點(diǎn)擊安裝即可,如果小伙伴電腦原來(lái)已經(jīng)安裝了 Node,在安裝 nvm過(guò)程中可能會(huì)出現(xiàn)需要覆蓋的確認(rèn)項(xiàng),直接同意覆蓋即可。
如果是 mac 或者 linux 的用戶,直接使用命令即可一鍵安裝
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
- 1.
安裝完成后,使用 nvm 命令,如果出現(xiàn)了對(duì)應(yīng)的版本,以及命令的幫助信息,即表示成功安裝 nvm
安裝成功
nvm配置
在安裝好 NVM 后,首先需要打開(kāi)安裝目錄,然后找到 settings.txt 文件
配置鏡像
在文件里需要配置對(duì)應(yīng)的 node_mirror 和 npm_mirror 的鏡像地址,下面是兩個(gè)配置的作用:
- node_mirror:是用于指定 Node.js 下載鏡像的環(huán)境變量或配置選項(xiàng)。當(dāng)你在安裝 Node.js 時(shí),Node.js 安裝程序可能會(huì)從官方源下載 Node.js 的二進(jìn)制文件。然而,有時(shí)官方源速度較慢或不穩(wěn)定,因此你可以使用 node_mirror 來(lái)指定一個(gè)替代的鏡像源,以提高下載速度和可靠性。
- npm_mirror:是用于指定 npm 包管理器下載鏡像的環(huán)境變量或配置選項(xiàng)。當(dāng)你使用 npm 安裝 Node.js 包時(shí),npm 會(huì)從默認(rèn)的全球源下載包。然而,有時(shí)這些全球源可能不夠快或不夠穩(wěn)定。
所以,我們只需要在這個(gè)文件下面,追加淘寶的鏡像地址即可:
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
- 1.
- 2.
NVM安裝不同Node版本
在安裝前,我們先了解一下常用的幾個(gè)命令
- nvm arch:顯示node是運(yùn)行在32位還是64位。
- nvm install[arch] :安裝node, version是特定版本也可以是最新穩(wěn)定版本latest。可選參數(shù)arch指定安裝32位還是64位版本,默認(rèn)是系統(tǒng)位數(shù)。可以添加--insecure繞過(guò)遠(yuǎn)程服務(wù)器的SSL。
- nvm list [avAIlable] :顯示已安裝的列表。可選參數(shù)available,顯示可安裝的所有版本。list可簡(jiǎn)化為ls。
- nvm on :開(kāi)啟node.js版本管理。
- nvm off :關(guān)閉node.js版本管理。
- nvm proxy [url] :設(shè)置下載代理。不加可選參數(shù)url,顯示當(dāng)前代理。將url設(shè)置為none則移除代理。
- nvm node_mirror [url] :設(shè)置node鏡像。如果不寫(xiě)url,則使用默認(rèn)url。設(shè)置后可至安裝目錄settings.txt文件查看,也可直接在該文件操作。
- nvm npm_mirror [url] :設(shè)置npm鏡像。如果不寫(xiě)url,則使用默認(rèn)url。設(shè)置后可至安裝目錄settings.txt文件查看,也可直接在該文件操作。
- nvm uninstall :卸載指定版本node。
- nvm use [version] [arch] :使用指定版本node。可指定32/64位。
- nvm root [path] :設(shè)置存儲(chǔ)不同版本node的目錄。如果未設(shè)置,默認(rèn)使用當(dāng)前目錄。
- nvm version :顯示nvm版本。version可簡(jiǎn)化為v。
首先,以蘑菇為例,推薦的 Node 版本是 14.x,所以我們需要使用 npm list available 去查看對(duì)應(yīng)的版本
可用的Node版本
可以看到,安裝的列表里竟然沒(méi)有蘑菇推薦的:14.x,(這。。看來(lái)這個(gè)版本已經(jīng)太老了,下次得給蘑菇升級(jí)一下版本依賴(lài)了)
如果沒(méi)有找到對(duì)應(yīng)的版本,在列表下方的一行字體里也說(shuō)了,這個(gè)是部分的列表信息,如果要完整的可以直接跳轉(zhuǎn)到 Node 官網(wǎng)查看
This is a partial list. For a complete list, visit https://nodejs.org/en/download/releases
- 1.
我們進(jìn)入到官網(wǎng),即可看到 14.21.3 是目前還在維護(hù)的一個(gè) node 版本,并且在 2023-02-16 還在更新
官網(wǎng)尋找
好,那我們就安裝 14.21.3 ,使用下面命令安裝即可(強(qiáng)烈建議按照上面的方式,先配置好鏡像地址,不然安裝會(huì)很慢..)
nvm install 14.21.3
- 1.
安裝Node成功
安裝完成后,我們可以用 nvm list 進(jìn)行查看,可以看到 我們系統(tǒng)中已經(jīng)有了這個(gè)版本的 Node
圖片
但是現(xiàn)在還沒(méi)有激活這個(gè) Node,需要使用 npm use 命令進(jìn)行激活使用,激活后就可以看到當(dāng)前版本正在使用中
npm use 14.21.3
- 1.
激活node
激活后,我們查看一下當(dāng)前的 npm 版本,可以看到已經(jīng)成功切換到指定版本的 node 版本了
查看node版本
切換到14.x后,就正常的運(yùn)行蘑菇博客項(xiàng)目了~
運(yùn)行蘑菇
同時(shí),我們還可以繼續(xù)安裝 其它版本的 Node,例如上面我下載的一個(gè)開(kāi)源軟件最低要求 16.x 版本的 Node,我們按照上述方法,找到一個(gè)合適的版本
nvm install 16.19.0
- 1.
然后在查看目前系統(tǒng)中已經(jīng)存在的版本,可以看到現(xiàn)在已經(jīng)有兩套 Node 版本了,一個(gè)是 14.x,一個(gè)是 16.x,我們可以按照自己項(xiàng)目依賴(lài)的版本,進(jìn)行切換即可
圖片
如果最后不想使用這個(gè)版本的 Node 了,也可以直接使用 nvm uninstall 命令卸載即可
nvm uninstall 14.21.3
- 1.
圖片
好了,關(guān)于 nvm 的使用就到這里了,小伙伴們趕緊使用起來(lái)~
nvm-desktop 初使用
介紹完 nvm 后,我們?cè)賮?lái)看另外一個(gè)桌面級(jí)的 node 版本管理器:nvm-desktop。
nvm-desktop 是一個(gè)用 Electron 開(kāi)發(fā)的一個(gè)桌面應(yīng)用,這個(gè)應(yīng)用提供了以可視化界面操作的形式讓用戶為自己的操作系統(tǒng)設(shè)置和切換Node版本的能力,而nvm-desktop 想要具備這種能力就離不開(kāi) nvmd-command ,因?yàn)榫唧w的功能是在 nvmd-command 中實(shí)現(xiàn)的。
nvmd-command 是一個(gè)單一、快速的本機(jī)可執(zhí)行文件,沒(méi)有外部依賴(lài)項(xiàng),并且使用 Rust 構(gòu)建,它依賴(lài) nvm-desktop 的設(shè)置來(lái)識(shí)別出正確的 Node 版本。
首先,我們?cè)?nbsp;Github 中找到 nvm-desktop 下載地址
https://github.com/1111mp/nvm-desktop/releases
- 1.
然后找到 windows 版本,選擇 exe 后綴的文件進(jìn)行下載
下載安裝包
下載完成后進(jìn)行安裝,最后運(yùn)行成功后的頁(yè)面如下所示,這個(gè)效果就和我們命令行的 nvm list 類(lèi)似,會(huì)展示所有可安裝的 node 版本信息
運(yùn)行截圖
并且,上面展示的 node 版本更全,比如:蘑菇需要用到的 16.x,在這里也都可以找到
更多的Node版本
在安裝 Node 前,也可以設(shè)置一下 node 的鏡像地址,從而加速 node 的訪問(wèn)
設(shè)置鏡像地址
小伙伴根據(jù)自己項(xiàng)目的需要,使用對(duì)應(yīng)版本即可
安裝依賴(lài)
安裝完成后,我們切換到已安裝的目錄,點(diǎn)擊更多選項(xiàng),即可直接應(yīng)用該版本,效果上面使用的 nvm use 也是一樣的
切換成功
切換完成后,小伙伴也可以正常的使用 Node 了,如果要使用不同的版本,直接就去所有版本那里尋找即可。
關(guān)于如何優(yōu)雅的切換 Node 版本就講到這里了~