nvm可解决多版本共存问题,无需卸载旧版、sudo权限或污染系统node;安装后命令不可用是因shell未加载配置,需检查并source对应rc文件。

直接用 nvm 就能解决多版本共存问题,不用删旧版、不用 sudo、不会污染系统 Node ——前提是它得真正加载进当前 shell。
安装后命令不可用?检查 shell 配置是否生效
很多人执行完 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash 就以为装好了,结果敲 nvm --version 报 “command not found”。这不是安装失败,是 shell 没读到配置。
- 先确认你用的是什么 shell:
echo $SHELL,常见为/bin/bash或/bin/zsh - 对应重载配置文件:
source ~/.bashrc(Bash)或source ~/.zshrc(Zsh) - 如果仍不行,检查配置文件末尾是否真有这三行(nvm 安装脚本应自动写入):
export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" - 别漏掉
\.(点空格),写成source也可能失败,nvm.sh 要求用.加载
安装和切换版本时的常见陷阱
nvm install 和 nvm use 看似简单,但几个细节不注意就会卡住:
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
-
nvm install 20安装的是20.x最新版,不是v20.0.0;想装精确版本得写全:nvm install 20.18.0 -
nvm use 20只在当前终端生效,新开一个终端还是默认版本;要永久生效,必须配nvm alias default 20.18.0 - 如果项目里有
.nvmrc文件(内容如20.18.0),进目录后运行nvm use会自动切过去 —— 但很多人忘了这步,还在用错版本跑npm install -
nvm ls输出里带*的才是当前生效版本;default -> 18表示默认值设了但没激活,得手动nvm use或重启终端
为什么 node -v 和 nvm current 对不上?
这是 PATH 混乱最典型的信号:系统可能还残留着其他 Node 安装路径(比如 apt/yum 装的、手动编译的、或者旧 nvm 版本残留的 ~/.nvm/versions/node 外链接)。
- 查真实 node 来源:
which node和readlink -f $(which node) - 如果输出类似
/usr/bin/node或/opt/node/bin/node,说明没走 nvm;优先删掉这些路径,或确保~/.nvm/versions/node/v20.18.0/bin在 PATH 最前面 -
nvm deactivate可临时退出 nvm 管理,用来验证是否真被接管;之后再nvm use恢复 - 不要在
~/.bashrc里硬写export PATH=...插入 node 路径 —— 这会破坏 nvm 的动态 PATH 切换逻辑
最常被忽略的一点:nvm 管理的每个 Node 版本自带独立的 npm,但全局安装的包(如 npm install -g typescript)只对当前 nvm use 的版本可见。切版本后,得重新装一次全局工具,或者改用 npx 避免依赖全局安装。










