NVM Node.js 版本管理器完整教程
NVM(Node Version Manager)是管理 Node.js 多版本的首选工具。不同的 Node.js 项目可能依赖不同版本,NVM 让你可以在搬瓦工 VPS 上轻松安装、切换和管理多个 Node.js 版本。使用优惠码 NODESEEK2026 购买搬瓦工可享 6.77% 折扣。
一、安装 NVM
# 下载并安装 NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
# 或使用 wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
# 重新加载 shell 配置
source ~/.bashrc
# 或
source ~/.zshrc
# 验证安装
nvm --version
NVM 安装脚本会自动在 ~/.bashrc(或 ~/.zshrc)中添加环境变量。
二、安装 Node.js
# 查看可用的 Node.js 版本
nvm ls-remote
# 安装最新 LTS 版本(推荐生产环境使用)
nvm install --lts
# 安装指定版本
nvm install 20.11.0
nvm install 18.19.0
nvm install 22
# 安装最新版本
nvm install node
# 查看已安装的版本
nvm ls
三、版本切换
# 切换到指定版本
nvm use 20
nvm use 18.19.0
# 使用 LTS 版本
nvm use --lts
# 查看当前使用的版本
nvm current
node --version
# 设置默认版本(新终端自动使用)
nvm alias default 20
# 在某个版本下运行命令(不切换全局版本)
nvm exec 18 node app.js
nvm exec 18 npm test
四、项目级版本管理
在项目根目录创建 .nvmrc 文件,指定项目需要的 Node.js 版本:
# 创建 .nvmrc 文件
echo "20" > .nvmrc
# 或者使用精确版本
echo "20.11.0" > .nvmrc
# 进入项目目录后自动切换(需要先 nvm use)
cd /opt/my-project
nvm use
# Found '/opt/my-project/.nvmrc' with version <20>
# Now using node v20.11.0
自动切换版本
在 ~/.bashrc 中添加以下脚本,进入包含 .nvmrc 的目录时自动切换版本:
# 添加到 ~/.bashrc
cdnvm() {
command cd "$@" || return $?
nvm_path="$(nvm_find_up .nvmrc | command tr -d '\n')"
if [[ ! $nvm_path = *[^[:space:]]* ]]; then
declare default_version
default_version="$(nvm version default)"
if [[ $default_version == "N/A" ]]; then
nvm alias default node
default_version=$(nvm version default)
fi
if [[ $(nvm current) != "$default_version" ]]; then
nvm use default
fi
elif [[ -s "${nvm_path}/.nvmrc" && -r "${nvm_path}/.nvmrc" ]]; then
declare nvm_version
nvm_version=$(<"${nvm_path}/.nvmrc")
declare locally_resolved_nvm_version
locally_resolved_nvm_version=$(nvm ls --no-colors "$nvm_version" | command tail -1 | command tr -d '\->v* ')
if [[ "$locally_resolved_nvm_version" == "N/A" ]]; then
nvm install "$nvm_version"
elif [[ $(nvm current) != "$locally_resolved_nvm_version" ]]; then
nvm use "$nvm_version"
fi
fi
}
alias cd='cdnvm'
五、全局包管理
# 安装全局包(仅对当前 Node 版本生效)
npm install -g pm2 yarn typescript
# 查看全局包
npm list -g --depth=0
# 切换 Node 版本后迁移全局包
nvm install 22 --reinstall-packages-from=20
# 或手动重新安装
nvm use 22
npm install -g pm2 yarn typescript
注意:NVM 的全局包是按 Node 版本隔离的,切换版本后之前安装的全局包不可用,需要重新安装或使用 --reinstall-packages-from 迁移。
六、PM2 部署示例
在搬瓦工 VPS 上使用 NVM + PM2 部署 Node.js 应用:
# 安装特定 Node 版本和 PM2
nvm install 20
nvm alias default 20
npm install -g pm2
# 使用 PM2 启动应用
pm2 start app.js --name my-app
# 设置开机自启
pm2 startup
pm2 save
# 查看应用状态
pm2 list
pm2 logs my-app
七、NVM 常用命令速查
# 安装管理
nvm install 20 # 安装 Node 20
nvm install --lts # 安装最新 LTS
nvm uninstall 18 # 卸载 Node 18
# 版本切换
nvm use 20 # 切换到 Node 20
nvm use --lts # 切换到 LTS
nvm current # 查看当前版本
# 别名管理
nvm alias default 20 # 设置默认版本
nvm alias myapp 18 # 自定义别名
nvm unalias myapp # 删除别名
# 查看信息
nvm ls # 查看已安装版本
nvm ls-remote # 查看可安装版本
nvm ls-remote --lts # 查看 LTS 版本
nvm which 20 # 查看版本路径
# 卸载 NVM
nvm deactivate # 临时禁用
rm -rf ~/.nvm # 完全删除
八、常见问题
NVM 命令找不到
# 手动加载 NVM
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
sudo 下无法使用 NVM 安装的 Node
# 使用完整路径
sudo /home/user/.nvm/versions/node/v20.11.0/bin/node app.js
# 或创建符号链接
sudo ln -s $(which node) /usr/local/bin/node
sudo ln -s $(which npm) /usr/local/bin/npm
总结
NVM 是在搬瓦工 VPS 上管理 Node.js 多版本的最佳工具,安装简便、切换快速、项目隔离。每个 Node.js 项目都建议添加 .nvmrc 文件明确版本要求。如果你同时需要管理其他语言的版本,可以了解通用版本管理器 asdf。选购搬瓦工请访问 全部方案,使用优惠码 NODESEEK2026 享 6.77% 折扣,通过 bwh81.net 进入官网。