命令列工具
1111mp/nvm-desktop avatar
1111mp/nvm-desktop

nvm-desktop:桌面應用程式與 nvmd 指令列搭配管理 Node.js 版本

Node Version Manager Desktop - 用於管理多個活動 Node.js 版本的桌面應用程式。

1,397 個 Star74 個 ForkTypeScriptMIT

秒懂

它是什麼?
一個以 Tauri 打造的桌面應用程式與指令列工具 nvmd 共用同一套版本狀態,用於安裝、切換與依專案鎖定 Node.js 版本。
適合誰用?
nvm-desktop 主要透過其 CLI 指令與檔案設定來說明自身,而非解釋底層切換機製的運作原理。需要圍繞它撰寫腳本的讀者可以從 nvmd install、use、current、uninstall 與 which 這幾個指令入手;準備在團隊中評估它的讀者仍應確認安裝程式在自己平台上是如何設定 PATH 的,因為 README 說明了目標卻沒有說明實作方式。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 2 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

1111mp-nvm-desktop-deep-analysis|兩個介面,同一份狀態

1111mp-nvm-desktop-deep-analysis|兩個介面,同一份狀態 的專案脈絡:nvm-desktop 由同名的桌面應用程式與指令列工具 nvmd 組成,README 說明兩者共用狀態而非各自獨立運作:透過其中一個安裝的版本,另一個也能看到。專案支援 macOS、Windows 與 Linux。README 並未說明 GUI 與 CLI 是打包在同一個安裝程式中,還是以獨立下載項目分發,這點在決定如何於團隊內推廣之前值得先確認。

專案核對 0:請在 1111mp-nvm-desktop-deep-analysis 的 README、設定檔或命令輸出中確認這一節描述的具體行為,並把檔案路徑、參數名稱、平台條件與錯誤結果分開記錄。這些觀察可用來判斷功能是否真的符合目前流程,也能在升級後定位差異。素材未列出的性能或安全承諾,不應自行補上。

1111mp-nvm-desktop-deep-analysis|安裝發行版本

1111mp-nvm-desktop-deep-analysis|安裝發行版本 的專案脈絡:README 中提到的唯一發布管道是 GitHub Releases 頁面,並未提供套件管理員安裝說明,因此這裡沒有記錄 brew 公式或 winget 項目。安裝完成後,README 建議的驗證方式是在終端機中執行 nvmd -V、node -v 與 npm -v,以確認工具已把自己的 shim 放進 PATH。它並未解釋安裝程式在各平台上具體是如何做到這件事的,也沒有說明找不到這些指令時該怎麼辦。

專案核對 1:請在 1111mp-nvm-desktop-deep-analysis 的 README、設定檔或命令輸出中確認這一節描述的具體行為,並把檔案路徑、參數名稱、平台條件與錯誤結果分開記錄。這些觀察可用來判斷功能是否真的符合目前流程,也能在升級後定位差異。素材未列出的性能或安全承諾,不應自行補上。

1111mp-nvm-desktop-deep-analysis|README 記錄的 CLI 指令

1111mp-nvm-desktop-deep-analysis|README 記錄的 CLI 指令 的專案脈絡:README 把 nvmd 的用法示範為一係列指令:用 nvmd install 20.18.0 安裝某個版本,用 nvmd ls 列出已安裝的版本,用 nvmd use 20.18.0 切換全域預設版本,用 nvmd current 查看目前使用的版本,用 nvmd uninstall 16.20.2 移除某個版本,以及用 nvmd which node 或 nvmd which npm 印出可執行檔的解析路徑。這些指令被呈現為核心工作流程,而非完整的指令參考,因此這裡未展示的其他選項不在來源涵蓋範圍內。

專案核對 2:請在 1111mp-nvm-desktop-deep-analysis 的 README、設定檔或命令輸出中確認這一節描述的具體行為,並把檔案路徑、參數名稱、平台條件與錯誤結果分開記錄。這些觀察可用來判斷功能是否真的符合目前流程,也能在升級後定位差異。素材未列出的性能或安全承諾,不應自行補上。

1111mp-nvm-desktop-deep-analysis|依專案鎖定版本

1111mp-nvm-desktop-deep-analysis|依專案鎖定版本 的專案脈絡:除了全域切換之外,nvmd use 18.20.4 --project 可以為目前專案而非整個係統設定版本。README 建議的工作流程是:開啟專案根目錄,搭配專案所需的版本執行該指令,再用 node -v 確認,接著照常安裝相依套件。其目的是讓每個儲存庫的相依套件與工具鏈行為保持一致,這與後文提到的 projects.json 檔案的作用相呼應。

專案核對 3:請在 1111mp-nvm-desktop-deep-analysis 的 README、設定檔或命令輸出中確認這一節描述的具體行為,並把檔案路徑、參數名稱、平台條件與錯誤結果分開記錄。這些觀察可用來判斷功能是否真的符合目前流程,也能在升級後定位差異。素材未列出的性能或安全承諾,不應自行補上。

1111mp-nvm-desktop-deep-analysis|GUI 這一側

1111mp-nvm-desktop-deep-analysis|GUI 這一側 的專案脈絡:nvm-desktop 應用程式透過點擊而非輸入完成相同的操作:瀏覽可用的 Node.js 版本、安裝與移除版本、切換全域預設版本、把某個版本綁定到專案,以及管理鏡像與語言等設定。README 對這種分工的說明很簡單:探索與視覺化管理用 GUI,自動化與腳本場景用 CLI。它並未說明具體有哪些鏡像選項,也沒有列出介面支援哪些語言。

專案核對 4:請在 1111mp-nvm-desktop-deep-analysis 的 README、設定檔或命令輸出中確認這一節描述的具體行為,並把檔案路徑、參數名稱、平台條件與錯誤結果分開記錄。這些觀察可用來判斷功能是否真的符合目前流程,也能在升級後定位差異。素材未列出的性能或安全承諾,不應自行補上。

1111mp-nvm-desktop-deep-analysis|資料存放位置

1111mp-nvm-desktop-deep-analysis|資料存放位置 的專案脈絡:資料存放在 macOS 與 Linux 上的 ~/.nvmd,以及 Windows 上的 %HOMEPATH%\.nvmd。其中 bin 目錄存放 node、npm、npx、nvmd 與 corepack 的 shim;versions 目錄存放已安裝的執行環境;名為 default 的檔案記錄全域版本;projects.json 保存由 --project 設定的依專案綁定;setting.json 保存應用程式設定。README 也提到,預設情況下不同 Node.js 版本之間的全域 npm 套件是彼此隔離的,若要共用,需要手動用 npm config set prefix 設定一個共同前綴。

專案核對 5:請在 1111mp-nvm-desktop-deep-analysis 的 README、設定檔或命令輸出中確認這一節描述的具體行為,並把檔案路徑、參數名稱、平台條件與錯誤結果分開記錄。這些觀察可用來判斷功能是否真的符合目前流程,也能在升級後定位差異。素材未列出的性能或安全承諾,不應自行補上。

1111mp-nvm-desktop-deep-analysis|從原始碼建置

1111mp-nvm-desktop-deep-analysis|從原始碼建置 的專案脈絡:在本機開發方面,README 列出的前置需求是 Rust、Node.js 與 pnpm,接著依序執行 pnpm check、pnpm install、pnpm dev 來執行專案,用 pnpm build 產生安裝包,建置產物會放在 ./src-tauri/target/release/bundle 目錄下。src-tauri 這個路徑與 Rust 這項前置需求都指向桌面外殼採用了 Tauri,儲存庫的預設分支也叫做 tauri,不過 README 本身從未直接點名這個框架。

專案核對 6:請在 1111mp-nvm-desktop-deep-analysis 的 README、設定檔或命令輸出中確認這一節描述的具體行為,並把檔案路徑、參數名稱、平台條件與錯誤結果分開記錄。這些觀察可用來判斷功能是否真的符合目前流程,也能在升級後定位差異。素材未列出的性能或安全承諾,不應自行補上。

1111mp-nvm-desktop-deep-analysis|授權條款與尚未說明的部分

1111mp-nvm-desktop-deep-analysis|授權條款與尚未說明的部分 的專案脈絡:此儲存庫採用 MIT 授權,版權歸 1111mp 所有,年份為 2023 年。這份授權授予的權利是可以免費使用、複製、修改、合併、發布、散布、再授權以及出售軟體的副本,前提是版權聲明與授權文字要保留在軟體的實質性部分中。它同時聲明不提供任何形式的擔保,也排除了作者的責任。授權沒有涉及的內容是另一回事:沒有說明安全保障措施,沒有支援管道,也沒有說明議題或版本發布是如何管理的,能看到的只有儲存庫當下的未解決議題數量。

1111mp-nvm-desktop-deep-analysis|授權條款與尚未說明的部分:針對 nvm-desktop,採用前應把 Node 版本切換、下載來源與 shell 整合分開驗證。依 README 建立測試使用者與版本清單,先安裝一個指定 Node 版本,再確認桌面介面顯示的版本、終端執行 node --version 的結果,以及新開 shell 是否讀到相同設定。接著切換回另一版本,觀察 npm 全域套件與 PATH 是否出現殘留。若使用代理或自訂鏡像,應直接檢查相關設定欄位與下載日誌,確認失敗時不會把半成品標成已安裝。

1111mp-nvm-desktop-deep-analysis|授權條款與尚未說明的部分:實際檢查 nvm-desktop,部署前應把 Node 版本切換、下載來源與 shell 整合分開驗證。依 README 建立測試使用者與版本清單,先安裝一個指定 Node 版本,再確認桌面介面顯示的版本、終端執行 node --version 的結果,以及新開 shell 是否讀到相同設定。接著切換回另一版本,觀察 npm 全域套件與 PATH 是否出現殘留。若使用代理或自訂鏡像,應直接檢查相關設定欄位與下載日誌,確認失敗時不會把半成品標成已安裝。

1111mp-nvm-desktop-deep-analysis|授權條款與尚未說明的部分:執行紀錄 nvm-desktop,採用前應把 Node 版本切換、下載來源與 shell 整合分開驗證。依 README 建立測試使用者與版本清單,先安裝一個指定 Node 版本,再確認桌面介面顯示的版本、終端執行 node --version 的結果,以及新開 shell 是否讀到相同設定。接著切換回另一版本,觀察 npm 全域套件與 PATH 是否出現殘留。若使用代理或自訂鏡像,應直接檢查相關設定欄位與下載日誌,確認失敗時不會把半成品標成已安裝。

專案核對 7:請在 1111mp-nvm-desktop-deep-analysis 的 README、設定檔或命令輸出中確認這一節描述的具體行為,並把檔案路徑、參數名稱、平台條件與錯誤結果分開記錄。這些觀察可用來判斷功能是否真的符合目前流程,也能在升級後定位差異。素材未列出的性能或安全承諾,不應自行補上。

編輯結論

nvm-desktop 主要透過其 CLI 指令與檔案設定來說明自身,而非解釋底層切換機製的運作原理。需要圍繞它撰寫腳本的讀者可以從 nvmd install、use、current、uninstall 與 which 這幾個指令入手;準備在團隊中評估它的讀者仍應確認安裝程式在自己平台上是如何設定 PATH 的,因為 README 說明了目標卻沒有說明實作方式。截至目前,該專案在其 tauri 分支上有 1385 個星標、72 個 fork 與 2 個未解決的議題。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記