小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

NVM、NPM、Node.js的安裝選擇

 丹楓無跡 2021-09-05

在安裝和使用這三種工具時,我們有很多方式可以選擇,這些方法各有優(yōu)劣,每個人都有自己用起來比較習(xí)慣的配置,所以我在這里記錄下自己比較習(xí)慣的一種安裝方式與其他一些可能的選項(xiàng)。

NVM、NPM、Node.js的關(guān)系

假定我們的最終目的是為了安裝并使用Node.js,那么我們有兩種常規(guī)的選擇:

  • Node.js安裝包
  • NVM

第一種方式非常直接,搜索Node.js,在官網(wǎng)下載需要的的版本并進(jìn)行安裝就可以了,但是一般不推薦這種方式,因?yàn)镹ode.js的版本眾多,開發(fā)時不同的項(xiàng)目可能會使用不同的版本,每次面對不同的項(xiàng)目都要重新安裝,版本的切換十分麻煩。

為了解決上面的問題,使用NVM是一個不錯的選擇,我們先看的NVM的全稱:Node Version Manager,也就是說NVM是Node.js的版本管理器,通過NVM我們就可以安裝多個不同版本的Node.js并在需要的時候進(jìn)行切換,具體的方法在下面介紹。

NVM是Node.js管理器,那么NPM呢?還是看全稱:Node Package Manager,也就是Node.js包管理器,用于管理Node的大量擴(kuò)展API。在安裝Node.js時就會自動安裝相應(yīng)版本的NPM。

NVM

直接從GitHub上下載 下載地址

分成安裝版(setup)和免安裝版(noinstall),區(qū)別不大但如果希望能在全局的各個文件位置都可以使用NVM、NPM和Node.js這些工具的指令,要注意使用免安裝版需要自行設(shè)置環(huán)境變量

安裝版(setup)

安裝過程需要設(shè)置兩個路徑,就是環(huán)境變量相應(yīng)的值,分別是NVM和Node.js的路徑,建議路徑中不要有空格,安裝時會自動建立環(huán)境變量。

免安裝版(noinstall)設(shè)置環(huán)境變量

使用免安裝版時可以配置環(huán)境變量如下:

NVM_HOME 就是NVM所在的目錄,NVM_SYMLINK 則是Node.js的目錄,但變量名看起來好像沒什么關(guān)系,原因我們在下面切換Node.js版本的操作方法處說明。

驗(yàn)證nvm安裝

安裝完成后我們可以通過nvm version命令查看nvm的版本來驗(yàn)證是否已經(jīng)成功安裝。由于我們配置了環(huán)境變量,所以可以在任意目錄中執(zhí)行nvm命令。

安裝指定版本的Node.js

nvm install 版本號

// 舉例
nvm install 12.19.1

命令很簡單,但是在版本號的選擇上似乎有些問題,最開始我們就說到Node.js版本眾多,這里我到底該選擇哪個版本呢?

我們回過頭看下Node.js的首頁,可以看到兩種版本

  • LTS(Long-Term Support)
  • Current

關(guān)于Node.js版本的成因和各種具體的說明已經(jīng)有文章寫得很明確了,官網(wǎng)頁面也有說明,有興趣可以去了解一下,根據(jù) Recommended For Most UsersLatest Features 可以得出一個簡單的結(jié)論:通常情況,為了穩(wěn)定選擇LTS版本,為了嘗鮮選擇Current版本。

另外值得一提的就是Node.js采用奇偶版本號的形式,奇數(shù)為非穩(wěn)定版(如9.11、15.2.1),偶數(shù)為穩(wěn)定版(如10.23、12.19.1),通過這個也可以簡單判斷。

但既然我們使用了nvm,難道還要每次去Node,js官網(wǎng)看下版本再安裝嗎?當(dāng)然不需要,通過指令nvm list available就可以查看近期的可用版本。

下載服務(wù)器

在開始安裝之前還有一件事要注意,npm與Node.js的默認(rèn)下載服務(wù)器均在國外,國內(nèi)進(jìn)行下載時往往有速度較慢的問題,我們可以通過配置為淘寶鏡像進(jìn)行解決。在安裝目錄下面我們可以找到名為 settings.txt 的文件,打開并在最后加上兩行來將Node.js和npm的下載服務(wù)器地址替換為服務(wù)器在國內(nèi)的淘寶鏡像:

node_mirror: https://npm./mirrors/node/
npm_mirror: https://npm./mirrors/npm/

切換Node.js版本

得到版本號后執(zhí)行上面的install指令進(jìn)行安裝。

此時可以先通過nvm list指令來查看已經(jīng)安裝的Node.js版本。

可以看到已經(jīng)有一個版本的Node.js被安裝了,也許這時已經(jīng)有人開始躍躍欲試地輸入node -v來測試Node.js的安裝情況了,但此時會發(fā)現(xiàn)node指令仍然沒有被系統(tǒng)識別,顯然我們還有什么步驟沒有做,在安裝步驟的最后,nvm也提醒我們使用nvm use指令。

輸入nvm use 版本號,例如nvm use 12.19.1來切換Node.js到指定的版本。

可以看到提示我們已經(jīng)切換到對應(yīng)的版本,之后可以通過nvm list來查看當(dāng)前已經(jīng)安裝和正在使用的Node.js版本。正在使用的Node.js版本會用星號標(biāo)出。

此時我們就可以用我們熟悉的命令來查看一下Node.js和npm的安裝情況了。

關(guān)于nvm版本切換的實(shí)質(zhì)

在最開始使用nvm的時候我遇到了一些特殊的情況導(dǎo)致版本切換功能整個失效,借這個問題我觀察了一下nvm的安裝目錄從而發(fā)現(xiàn)了端倪。大家應(yīng)該還記得,在最初安裝nvm的時候我們選擇了兩個路徑,一個是nvm的路徑,另一個是Node.js的路徑,但是直到我們安裝第一個版本的Node.js后,這個文件夾也是未使用的狀態(tài),此時再查看nvm的安裝目錄,可以看到有對應(yīng)版本號的文件夾被創(chuàng)建,里面就是對應(yīng)版本Node.js的文件,每一個版本對應(yīng)一個文件夾。

那版本切換時怎么做到的呢?如果使用普通權(quán)限的命令提示行來進(jìn)行版本切換操作,我們會發(fā)現(xiàn)系統(tǒng)提示cmd申請管理員權(quán)限,同意操作后再查看之前的nodejs文件夾:

圖標(biāo)有所變化,看到左下角的標(biāo)記應(yīng)該可以猜到這里可能是用了Windows系統(tǒng)中的快捷方式來實(shí)現(xiàn)這一操作,右鍵-屬性查看一下果不其然:

這個文件夾此時就變成了nvm目錄下的對應(yīng)版本文件夾的快捷方式,切換版本正是在進(jìn)行創(chuàng)建或修改快捷方式這一操作。

而且我們可以回憶一下在最初安裝時設(shè)置的系統(tǒng)變量,nodejs目錄采用的SYMLINK可能就是System Link這一縮寫,所以每次切換版本,Node.js的全局變量也已經(jīng)設(shè)置好了,我們自然可以直接在各個文件位置使用node和npm指令。

NPM

關(guān)于NPM的配置我們還可以進(jìn)行一些小的調(diào)整。輸入npm config ls指令:

紅線圈出的兩個部分默認(rèn)未修改的情況應(yīng)該是在C盤的用戶目錄下,這兩個路徑是npm全局包的安裝和緩存目錄。在我的C盤目錄比較拮據(jù)的情況下,將全局包安裝在C盤顯然不太合適,所以我選擇將這兩個路徑改到之前nvm目錄的附件,便于查看和管理,指令如下:

npm config set prefix "D:/web/package/npm_global"
npm config set cache "D:/web/package/npm_cache"

接下來可以安裝一個全局包試一下:

npm install vue -g

安裝完成,全局查看可以看到當(dāng)前的全局目錄和vue已經(jīng)安裝成功:

npm ls -g

疑問

由于npm現(xiàn)在已經(jīng)固定包的安裝目錄了,即使切換Node.js版本,npm的包安裝目錄也仍然是我們設(shè)置的文件夾,使用npm ls -g指令查看仍然會發(fā)現(xiàn)之前安裝的包,不知道是否出現(xiàn)依賴于不同npm版本的包互相沖突的情況,目前我還沒有太多關(guān)于Node.js版本切換的實(shí)踐場景,準(zhǔn)備日后遇到這個問題再進(jìn)行一些實(shí)際的測試。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多