在安裝和使用這三種工具時,我們有很多方式可以選擇,這些方法各有優劣,每個人都有自己用起來比較習慣的配置,所以我在這里記錄下自己比較習慣的一種安裝方式與其他一些可能的選項,
NVM、NPM、Node.js的關系
假定我們的最終目的是為了安裝并使用Node.js,那么我們有兩種常規的選擇:
- Node.js安裝包
- NVM
第一種方式非常直接,搜索Node.js,在官網下載需要的的版本并進行安裝就可以了,但是一般不推薦這種方式,因為Node.js的版本眾多,開發時不同的專案可能會使用不同的版本,每次面對不同的專案都要重新安裝,版本的切換十分麻煩,

為了解決上面的問題,使用NVM是一個不錯的選擇,我們先看的NVM的全稱:Node Version Manager,也就是說NVM是Node.js的版本管理器,通過NVM我們就可以安裝多個不同版本的Node.js并在需要的時候進行切換,具體的方法在下面介紹,
NVM是Node.js管理器,那么NPM呢?還是看全稱:Node Package Manager,也就是Node.js包管理器,用于管理Node的大量擴展API,在安裝Node.js時就會自動安裝相應版本的NPM,
NVM
直接從GitHub上下載 下載地址
分成安裝版(setup)和免安裝版(noinstall),區別不大但如果希望能在全域的各個檔案位置都可以使用NVM、NPM和Node.js這些工具的指令,要注意使用免安裝版需要自行設定環境變數

安裝版(setup)
安裝程序需要設定兩個路徑,就是環境變數相應的值,分別是NVM和Node.js的路徑,建議路徑中不要有空格,安裝時會自動建立環境變數,


免安裝版(noinstall)設定環境變數
使用免安裝版時可以配置環境變數如下:

NVM_HOME 就是NVM所在的目錄,NVM_SYMLINK 則是Node.js的目錄,但變數名看起來好像沒什么關系,原因我們在下面切換Node.js版本的操作方法處說明,
驗證nvm安裝
安裝完成后我們可以通過nvm version命令查看nvm的版本來驗證是否已經成功安裝,由于我們配置了環境變數,所以可以在任意目錄中執行nvm命令,

安裝指定版本的Node.js
nvm install 版本號
// 舉例
nvm install 12.19.1
命令很簡單,但是在版本號的選擇上似乎有些問題,最開始我們就說到Node.js版本眾多,這里我到底該選擇哪個版本呢?
我們回過頭看下Node.js的首頁,可以看到兩種版本
- LTS(Long-Term Support)
- Current

關于Node.js版本的成因和各種具體的說明已經有文章寫得很明確了,官網頁面也有說明,有興趣可以去了解一下,根據 Recommended For Most Users 和 Latest Features 可以得出一個簡單的結論:通常情況,為了穩定選擇LTS版本,為了嘗鮮選擇Current版本,
另外值得一提的就是Node.js采用奇偶版本號的形式,奇數為非穩定版(如9.11、15.2.1),偶數為穩定版(如10.23、12.19.1),通過這個也可以簡單判斷,
但既然我們使用了nvm,難道還要每次去Node,js官網看下版本再安裝嗎?當然不需要,通過指令nvm list available就可以查看近期的可用版本,

下載服務器
在開始安裝之前還有一件事要注意,npm與Node.js的默認下載服務器均在國外,國內進行下載時往往有速度較慢的問題,我們可以通過配置為淘寶鏡像進行解決,在安裝目錄下面我們可以找到名為 settings.txt 的檔案,打開并在最后加上兩行來將Node.js和npm的下載服務器地址替換為服務器在國內的淘寶鏡像:
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
切換Node.js版本
得到版本號后執行上面的install指令進行安裝,

此時可以先通過nvm list指令來查看已經安裝的Node.js版本,

可以看到已經有一個版本的Node.js被安裝了,也許這時已經有人開始躍躍欲試地輸入node -v來測驗Node.js的安裝情況了,但此時會發現node指令仍然沒有被系統識別,顯然我們還有什么步驟沒有做,在安裝步驟的最后,nvm也提醒我們使用nvm use指令,
輸入nvm use 版本號,例如nvm use 12.19.1來切換Node.js到指定的版本,

可以看到提示我們已經切換到對應的版本,之后可以通過nvm list來查看當前已經安裝和正在使用的Node.js版本,正在使用的Node.js版本會用星號標出,

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

關于nvm版本切換的實質
在最開始使用nvm的時候我遇到了一些特殊的情況導致版本切換功能整個失效,借這個問題我觀察了一下nvm的安裝目錄從而發現了端倪,大家應該還記得,在最初安裝nvm的時候我們選擇了兩個路徑,一個是nvm的路徑,另一個是Node.js的路徑,但是直到我們安裝第一個版本的Node.js后,這個檔案夾也是未使用的狀態,此時再查看nvm的安裝目錄,可以看到有對應版本號的檔案夾被創建,里面就是對應版本Node.js的檔案,每一個版本對應一個檔案夾,

那版本切換時怎么做到的呢?如果使用普通權限的命令提示行來進行版本切換操作,我們會發現系統提示cmd申請管理員權限,同意操作后再查看之前的nodejs檔案夾:

圖示有所變化,看到左下角的標記應該可以猜到這里可能是用了Windows系統中的快捷方式來實作這一操作,右鍵-屬性查看一下果不其然:

這個檔案夾此時就變成了nvm目錄下的對應版本檔案夾的快捷方式,切換版本正是在進行創建或修改快捷方式這一操作,
而且我們可以回憶一下在最初安裝時設定的系統變數,nodejs目錄采用的SYMLINK可能就是System Link這一縮寫,所以每次切換版本,Node.js的全域變數也已經設定好了,我們自然可以直接在各個檔案位置使用node和npm指令,

NPM
關于NPM的配置我們還可以進行一些小的調整,輸入npm config ls指令:

紅線圈出的兩個部分默認未修改的情況應該是在C盤的用戶目錄下,這兩個路徑是npm全域包的安裝和快取目錄,在我的C盤目錄比較拮據的情況下,將全域包安裝在C盤顯然不太合適,所以我選擇將這兩個路徑改到之前nvm目錄的附件,便于查看和管理,指令如下:
npm config set prefix "D:/web/package/npm_global"
npm config set cache "D:/web/package/npm_cache"
接下來可以安裝一個全域包試一下:
npm install vue -g
安裝完成,全域查看可以看到當前的全域目錄和vue已經安裝成功:
npm ls -g

疑問
由于npm現在已經固定包的安裝目錄了,即使切換Node.js版本,npm的包安裝目錄也仍然是我們設定的檔案夾,使用npm ls -g指令查看仍然會發現之前安裝的包,不知道是否出現依賴于不同npm版本的包互相沖突的情況,目前我還沒有太多關于Node.js版本切換的實踐場景,準備日后遇到這個問題再進行一些實際的測驗,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/226590.html
標籤:其他
下一篇:關于ABAP和JSON互相轉換
