一、nvm 是什么
nvm 全名 node.js version management,是一個 nodejs 的版本管理工具。通過它可以安裝和切換不同版本的 nodejs,主要解決 node 各種版本存在不兼容現象。
在工作中,我們可能同時在進行2個或者多個不同的項目開發,每個項目的需求不同,進而不同項目必須依賴不同版本的 NodeJS 運行環境,這種情況下,對於維護多個版本的 node 將會是一件非常麻煩的事情。nvm 就是為解決這個問題而產生的,他可以方便的在同一台設備上進行多個node版本之間切換。
二、下載nvm
可以下載最新nvm版本,本次下載安裝的是windows版本。git 下載地址:https://github.com/coreybutler/nvm-windows/releases,打開網址我們可以看到以下安裝包:
選擇安裝版:下載地址中,nvm-noinstall.zip
是免安裝版,nvm-setup.zip
是安裝版。安裝版可以自動設置環境變量。
這里有一篇文章,講解了具體如何安裝或配置安裝版或免安裝版,可以學習下:《nvm安裝踩坑過程 - https://blog.csdn.net/zoujiawei6/article/details/85322170》
1、需要注意的是:安裝 nvm 路徑最好不要出現中文和空格
2、鏡像加速
下載后按照默認配置一步步安裝,由於國外的鏡像源下載慢,所以可以打開 nvm 的安裝位置,打開 nvm\settings.txt 添加:
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
三、安裝、管理 node 常用命令
nvm off // 禁用node.js版本管理(不卸載任何東西)
nvm on // 啟用node.js版本管理
nvm install <version> // 安裝node.js的命名 version是版本號 例如:nvm install 8.12.0
nvm uninstall <version> // 卸載node.js是的命令,卸載指定版本的nodejs,當安裝失敗時卸載使用
nvm ls // 顯示所有安裝的node.js版本
nvm list available // 顯示可以安裝的所有node.js的版本
nvm use <version> // 切換到使用指定的nodejs版本
nvm v // 顯示nvm版本
nvm install stable // 安裝最新穩定版
其他命令提示:
nvm arch :顯示node是運行在32位還是64位。
nvm install [arch] :安裝node, version是特定版本也可以是最新穩定版本latest。可選參數arch指定安裝32位還是64位版本,默認是系統位數。可以添加–insecure繞過遠程服務器的SSL。
nvm proxy [url] :設置下載代理。不加可選參數url,顯示當前代理。將url設置為none則移除代理。
nvm node_mirror [url] :設置node鏡像。默認是https://nodejs.org/dist/。如果不寫url,則使用默認url。設置后可至安裝目錄settings.txt文件查看,也可直接在該文件操作。
nvm use [version] [arch] :使用制定版本node。可指定32/64位。
nvm root [path] :設置存儲不同版本node的目錄。如果未設置,默認使用當前目錄。
四、遇到問題解決
1、windows 上安裝 nvm 后選擇 node 版本出現 exit status 1...
問題:nvm install x.x.x 可以安裝成功,但無法切換和使用,報錯 exit status 1
原因:把 nvm 安裝到了有空格的路徑上(D:\Program Files),導致切換失敗
解決:把 nvm 卸載重裝到沒有空格的路徑上(例如:D:\nvm),即可解決問題
2、nvm 在 CMD 中不生效
報錯:nvm : 無法將 “nvm” 項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。
意思就是 nvm 還不是個命令,說明沒有配置成功。
原因:當環境變量沒配正確時(使用免安裝版時需要配置環境變量),重啟也不會生效。在確保環境變量配置正確后,重啟 cmd 控制台后會生效。
我用的安裝版,我這里使用“以管理員身份運行” CMD 后就可以生效,但是在之前我先點了一下 nvm 應用讓其運行(具體原因不清楚)
3、npm Download failed
有時候安裝 node 安裝成功之后,會去安裝 npm 有時候就會報錯 npm 拒絕啥的,具體報錯沒有記錄
解決:使用鏡像加速(把鏡像加速的那2行加入,重新開 cmd 安裝即可)
4、node 版本安裝成功,但是使用時還是之前的版本
就像這樣,我之前安裝過node版本 10.15.0,沒有卸載,直接安裝的 nvm,並用 nvm 安裝了 14.18.1 的 node。如下切換成 14.18.1 版本也正常,但是查看 node -v 卻還是之前的版本。

解決:在安裝 NVM for Windows 之前,您需要卸載任何現有版本的 node.js,還需要刪除任何現有nodejs安裝目錄。以下是官方原文:
Please note, you need to uninstall any existing versions of node.js before installing NVM for Windows.
Also delete any existing nodejs installation directories.
所以我卸載了 nvm,卸載了 nodejs,然后重新安裝 nvm,再進行相關操作,就可以成功切換 node 版本了。