← 所有精選

★ GitHub Trending 精選

每日一個爆紅開源專案

日榜 #32026-08-12

nvm-sh/nvm

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

★ 94.5k stars · ▲ +22 今日 · 🔶 Shell · 📜 MIT在 GitHub 開啟 ↗
bashinstallltsnodenode-jsnodejsnvmnvmrcposixposix-compliantshellversion-manager
ℹ️ 今日 trending #1 是 msitarzewski/agency-agents(已於 2026-06-30 推過),故改推第 3 名。

這是什麼

nvm-sh/nvm 是一個用 POSIX 相容 shell 撰寫的 Node.js 版本管理器,核心目標很單純:讓使用者能在命令列快速安裝、切換並使用不同版本的 Node。README 的定位很明確,它是 per-user、per-shell 的工具,不是系統層級套件管理器;安裝後透過 shell profile 載入 nvm.sh,再用 nvm install、nvm use 等指令把目前 shell 的 Node 版本切到指定版本。它支援 sh、dash、ksh、zsh、bash 等環境,主要面向 Unix、macOS 與 Windows WSL,也提到 Git Bash、MSYS、Cygwin 在某些情況下可用。這種設計的好處是輕量、直覺,而且不需要為全域 npm 套件動用 sudo。

為什麼上榜

這次上榜的亮點不是「新專案」式的炫技,而是 經典基礎工具的持續需求。metadata 顯示它已有 94,483 stars,今日仍增加 22 stars;對一個成熟工具來說,這代表 Node 版本管理仍是開發者日常痛點。nvm 的差異在於它把問題收斂到 shell 層:不碰複雜 GUI,也不主張取代所有平台方案,而是用可讀的 bash script 處理多版本 Node、LTS、預設版本與環境變數。README 也花大量篇幅處理 Docker、CI/CD、macOS、Linux、WSL、Fish 不支援等邊界情境,顯示這個專案真正的價值在於 多年累積的相容性經驗,而不只是幾行安裝指令。

適合誰,可以拿來做什麼

它最適合需要在多個專案間切換 Node 版本的前端、全端、CLI 工具或自動化腳本開發者。若你的專案同時碰到 Node 20、22、24,或要跟著 LTS 版本升級,nvm 可以讓每個 shell session 選用合適版本,避免「系統 node」污染所有工作。README 也特別提示在 macOS 與 Linux 安裝後若找不到 nvm,通常需要重開終端或重新 source profile;在 Docker 非互動 shell 中,則要透過 BASH_ENV 讓 bash 自動載入設定。上手門檻不高,但使用者要理解它是 shell function,不是獨立 executable,所以驗證方式是 command -v nvm,而不是 which nvm。

上手

README 提供的安裝與驗證流程很直接,可用 curl 或 wget 執行 install script;腳本會 clone 到 ~/.nvm,並嘗試把載入片段加入 .bashrc、.bash_profile、.zshrc 或 .profile。安裝後建議用 README 指定的方式驗證:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

command -v nvm
nvm install 24
nvm use 22
node -v

若不希望安裝器修改 shell 設定,可用 PROFILE=/dev/null;若在 Docker 或 CI 裡使用,README 建議用 bash、設定 NVM_DIR,並在非互動 shell 中明確 source nvm.sh。

README 重點摘要