Back

如何在 Linux 上使用 NVM 切换 Node.js 版本(步骤指南)

如何在 Linux 上使用 NVM 切换 Node.js 版本(步骤指南)

管理不同的 Node.js 版本可能会变得混乱,特别是当你在多个项目上工作,每个项目都需要自己的 Node.js 设置时。Node 版本管理器(NVM)使在 Linux 上切换 Node.js 版本变得简单和整洁。在本指南中,你将准确了解如何安装 NVM、切换 Node 版本、设置默认值,以及快速解决常见问题。

要点

  • NVM 帮助管理多个 Node.js 版本,避免冲突。
  • 始终不使用 sudo 运行 NVM 和 Node.js 命令,以避免权限问题。

步骤 1:在 Linux 上安装 NVM

在终端中运行此命令:

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

此脚本自动下载并安装 NVM。

验证安装

重新加载你的 shell:

source ~/.bashrc  # 对于 Bash 用户
source ~/.zshrc   # 对于 Zsh 用户

然后验证 NVM 安装:

nvm --version

你应该看到版本号。

安装故障排除

如果遇到 nvm: command not found

  • 检查你的 ~/.bashrc~/.zshrc 是否有这些行:
export NVM_DIR=""$HOME/.nvm""
[ -s ""$NVM_DIR/nvm.sh"" ] && . ""$NVM_DIR/nvm.sh""
  • 添加这些行后,再次重新加载你的 shell。

步骤 2:安装和管理 Node.js 版本

安装最新的 Node.js 版本

安装最新的 Node.js:

nvm install node  # 最新发布版
nvm install --lts # 最新长期支持(LTS)版本

安装特定的 Node.js 版本

查找并安装特定的 Node.js 版本(例如,20.11.0):

nvm ls-remote
nvm install 20.11.0

列出已安装的版本

检查已安装的 Node 版本:

nvm ls

步骤 3:在 Node.js 版本之间切换

立即切换 Node.js 版本:

nvm use 20.11.0

验证活动版本:

node -v

设置默认 Node.js 版本

为新终端设置默认 Node.js:

nvm alias default 20.11.0

步骤 4:使用 .nvmrc 设置项目特定版本

在你的项目文件夹中创建 .nvmrc 文件,内含 Node 版本(例如,20.11.0)。然后使用:

nvm use

NVM 会自动从 .nvmrc 文件中选择版本。

常见问题和快速解决方案

Node 版本未更改

  • 确保你没有错误使用系统安装的 Node.js。
  • 运行 which node 确认正在使用 NVM 管理的 Node。
  • 切勿使用 sudo 执行 NVM 命令或安装 npm 包。

切换版本后全局 npm 包丢失

每个 Node.js 版本管理自己的全局 npm 包。迁移全局包:

nvm install 20 --reinstall-packages-from=18

将""18""替换为你想要从中迁移的 Node 版本。

更新 NVM

再次运行安装脚本以无缝更新 NVM:

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

这会更新 NVM 而不影响已安装的 Node 版本。

结论

使用 NVM 显著简化了多个 Node.js 环境的管理。它能够快速切换、避免版本冲突,并保持 Linux 开发工作流程顺畅。

常见问题

不需要。NVM 在你的主目录中安装 Node.js 版本,因此不需要 root 权限(`sudo`),也不应该使用。

NVM 在 macOS 上完美运行。Windows 用户应该使用 NVM for Windows,这是一个类似但独立的工具。

确保 NVM 设置行在你的 shell 配置文件(`~/.bashrc`、`~/.zshrc`)中,然后重新加载 shell 或重启终端。

每个终端会话可以有不同的活动 Node.js 版本由 NVM 管理,但单个会话一次只能运行一个版本。

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers