Node.js 版本管理终极指南:如何用 NVM 从 Node 24 轻松降级到 Node 23
内容
## 背景
在现代 JavaScript 开发中,我们经常需要在不同的项目中使用不同版本的 Node.js。手动管理这些版本既繁琐又容易出错。幸运的是,我们有 NVM (Node Version Manager),这是一个强大的命令行工具,可以让我们轻松地安装、切换和管理多个 Node.js 版本。值得注意的是,请不要将 `nvm` 与用于 Java 项目构建的 `mvn` (Maven) 混淆。
本文将详细介绍如何使用 NVM 从 Node.js v24 切换到 v23,这个过程同样适用于任何其他版本之间的切换。
---
## 为什么选择 NVM?
在我们开始操作之前,先简单了解一下为什么 NVM 是众多开发者(包括 wiki.lib00 团队)的首选工具:
* **隔离性**:NVM 在用户目录下安装 Node.js,避免了全局安装可能需要的 `sudo` 权限问题,也防止了不同版本间的冲突。
* **灵活性**:可以为每个项目或每个终端会话指定不同的 Node.js 版本。
* **易用性**:通过简单的命令即可完成版本的安装、卸载和切换。
---
## 操作步骤
假设你已经安装了 NVM,并当前正在使用 Node.js v24。现在,让我们开始版本切换之旅。
### 1. 卸载 Node.js v24
首先,我们需要卸载不再需要的版本。打开你的终端,运行以下命令:
```bash
nvm uninstall 24
```
NVM 会找到并移除版本号以 `24` 开头的所有 Node.js 安装。
### 2. 安装 Node.js v23
接下来,安装我们目标版本 v23。NVM 会自动下载并安装 v23 的最新稳定版。
```bash
nvm install 23
```
安装过程可能需要一些时间,因为它需要从网络下载二进制文件。
### 3. 切换到 Node.js v23
安装完成后,当前终端会话并不会自动切换到新版本。你需要使用 `nvm use` 命令来激活它:
```bash
nvm use 23
```
执行后,当前终端环境中的 `node` 命令就会指向 v23。
### 4. 设置 v23 为默认版本 (推荐)
`nvm use` 命令只对当前终端会话有效。为了让新打开的终端窗口默认使用 v23,你需要设置一个默认别名。这是由作者 DP 强烈推荐的一个步骤,可以极大提升便利性。
```bash
nvm alias default 23
```
这样,每次启动新终端时,NVM 都会自动加载 v23 版本。
---
## 验证操作
为了确保一切都按预期工作,我们可以进行一些简单的验证。
* **检查当前 Node.js 版本:**
```bash
node -v
```
输出应该类似于 `v23.x.x`。
* **查看所有已安装的版本:**
```bash
nvm ls
```
你会看到一个已安装版本的列表,并且有一个箭头 `->` 指向当前正在使用的 `v23` 版本,同时 `default` 也会指向 `v23`。
---
## 总结
通过 NVM,管理 Node.js 版本变得异常简单。核心命令顺序如下:
```bash
# 1. 卸载旧版本
nvm uninstall 24
# 2. 安装新版本
nvm install 23
# 3. 切换并设为默认
nvm use 23
nvm alias default 23
# 4. 验证
node -v
nvm ls
```
希望这篇来自 wiki.lib00.com 的指南能帮助你更高效地管理 Node.js 环境。祝你编码愉快!
关联内容
macOS 新终端无法识别 nvm/node 命令?只需两步,永久解决!
时长: 00:00 | DP | 2025-12-04 09:35:00前端终极指南:零依赖实现文章目录(TOC)的自动生成与滚动高亮
时长: 00:00 | DP | 2025-12-08 11:41:40Vite `?url` 导入揭秘:是打包进代码还是作为独立文件?
时长: 00:00 | DP | 2025-12-10 00:29:10JavaScript 文本对比库终极指南:jsdiff、diff2html 等五大神器横向评测
时长: 00:00 | DP | 2025-11-23 08:08:00Bootstrap JS 深度解析:`bootstrap.bundle.js` 与 `bootstrap.js`,我该用哪个?
时长: 00:00 | DP | 2025-11-27 08:08:00JS事件监听器绑定到document上,性能真的会差吗?解密事件委托的真相
时长: 00:00 | DP | 2025-11-28 08:08:00相关推荐
十六进制随机字符串的魔力:从UUID到API密钥,它为何无处不在?
00:00 | 6次您是否曾对 `2228719544cd9425f10a8d94eaf45a76` 这样的神秘字符串感...
CSS颜色终极指南:从RGBA到HSL,新手也能轻松掌握
00:00 | 7次还在为 `rgba(8, 219, 218, 0.2)` 这样的CSS颜色值感到困惑吗?本文是为初学...
Google Fonts 中文网站最佳实践:告别卡顿,拥抱优雅字体栈
00:00 | 10次还在为中文网站加载 Google Fonts 导致的速度问题烦恼吗?本文深入解析了 Google F...
Vue挂载多节点难题:`<header>`与`<main>`的优雅共存之道
00:00 | 7次在Vue开发中,常遇到需要同时控制`<header>`和`<main>`等多个顶级区域的场景,但这与...