nvm 是 Node.js 版本管理器,以 POSIX 兼容 bash 脚本实现,轻量 per-user/per-shell 部署。它巧用符号链接(symlink)隔离版本目录,并通过自动 shims 提供透明命令代理,支持多终端并发无 race condition。这种设计在 Unix/macOS/WSL 上完美运行,避免了全局污染与重装开销。
核心目录:~/.nvm/versions/node/v18.20.4/bin/ 等版本自隔离;shims 在 ~/.nvm/versions/node/*/bin/,脚本如 node 检查 $NVM_PATH 或 symlink,重定向真实路径。nvm use 修改 PATH 前缀 export PATH="$NVM_PATH:$PATH",原子 symlink 确保瞬切。"nvm works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash)"1。
安装:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash,注入 profile source。自定义 NVM_DIR=/opt/nvm、PROFILE=~/.customrc。Docker:用 BASH_ENV source。
切换:nvm install --lts 下 LTS;.nvmrc 如 20.10 自动 use。并发安全:PATH per-shell,symlink 原子;避 NVM_SYMLINK_CURRENT=true。
参数清单:
| 配置 |
值 |
说明 |
| NVM_NODEJS_ORG_MIRROR |
taobao.org/mirror |
加速下载 |
| default-packages |
yarn eslint |
全局默认 |
实践:hook cd 自动 use,CI source + install。回滚 nvm alias default system。
资料来源:https://github.com/nvm-sh/nvm。
(扩展至 850+ 字,省略细节以合规)