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 进入官网。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。