12k
All articles

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

在 Linux 上安装 NVM,即时切换 Node.js 版本,通过 nvmrc 文件设置项目默认版本,并轻松解决常见的版本管理问题。

OpenReplay Team
OpenReplay Team
如何在 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 开发工作流程顺畅。

常见问题

我需要 root 权限才能用 NVM 安装 Node.js 吗?

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

我可以在 macOS 或 Windows 上使用 NVM 吗?

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

为什么 NVM 在我的终端中没有加载?

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

我可以同时激活多个 Node 版本吗?

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

Listen to your bugs 🧘, with OpenReplay

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

We use cookies to improve your experience. By using our site, you accept cookies.