NVM 与开发环境
本教程共 76 篇 · 第 3 篇 · 更新于 2026-07-25 · 约 6 分钟阅读
3. NVM 与开发环境
本节目标:用 NVM 管理多版本 Node.js,配置 VS Code 让它成为趁手的 Node.js 开发环境,以及跑通断点调试。
为什么需要版本管理
现实很骨感:你手头三个项目,一个要求 Node.js 18,一个要求 20,另一个在用 24 的新特性。每次切项目都重装一遍 Node.js?人会疯的。
NVM(Node Version Manager)就是来解决这个问题的。它让你在同一台机器上装多个 Node.js 版本,按项目随时切换。
Tip如果你只装了一个版本、只有一个项目,NVM 可以先跳过。但相信我,最多三个月你就会回来装它。
macOS / Linux 装 NVM
一行命令搞定:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
或者用 wget:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
装完后关闭终端再打开(或者 source ~/.bashrc / source ~/.zshrc),验证:
nvm --version
看到版本号就是成功了。
Windows 装 nvm-windows
Windows 上不能用上面那个 NVM,得用专门的 nvm-windows。
- 去 Releases 页面下载
nvm-setup.exe。 - 双击安装。安装路径默认即可,它会自动帮你管理 Node.js 版本。
- 装完开一个新的 PowerShell:
nvm version
WarningWindows 上如果之前用安装包装过 Node.js,建议先卸载掉,再让 nvm-windows 接管。不然 PATH 容易打架,你会体验到什么叫「明明装了却找不到命令」。
NVM 常用操作
安装版本
nvm install 24 # 装 v24 最新小版本
nvm install 22.14.0 # 装指定版本
nvm install --lts # 装最新 LTS(macOS/Linux)
Windows 用户没有 --lts 参数,直接:
nvm install 24.18.0
查看和切换
nvm list # 看本地装了哪些
nvm list available # Windows:看远端有哪些可装
nvm ls-remote # macOS/Linux:看远端有哪些可装
nvm use 24 # 切换到 v24
nvm use 22.14.0 # 切到指定版本
设置默认版本
新开终端时自动用这个版本,不用每次都 nvm use:
nvm alias default 24
Windows:
nvm use 24.18.0
nvm alias default 24.18.0
按项目锁定版本:.nvmrc
团队项目最怕「我这边能跑,你那边报错」。在项目根目录建一个 .nvmrc 文件:
24.18.0
或者只写大版本:
24
以后进到这个项目目录,敲:
nvm use
NVM 会自动读取 .nvmrc 并切换。配合 auto-use 插件(zsh/fish 有),连 nvm use 都不用敲,cd 进目录自动切。
Note有些 CI/CD 平台(如 GitHub Actions)也认
.nvmrc,一行node-version-file: '.nvmrc'就能对齐本地和云端环境。
VS Code 配置
VS Code 是目前 Node.js 开发的事实标准编辑器。装完 Node.js 和 NVM 后,花五分钟配好 VS Code,开发效率能翻倍。
必装插件
- ESLint —— 代码风格和质量检查,能在你保存时自动修复常见问题。
- Prettier - Code: formatter —— 统一代码格式,告别「引号用单还是双」的争论。
- npm Intellisense ——
import时自动补全 npm 包名,不用来回翻node_modules。 - Path Intellisense —— 补全本地文件路径,
import时特别好用。 - Error Lens —— 把 ESLint 和 TypeScript 错误直接显示在行尾,不用 hover 看。
Tip别一次性装几十个插件。上面这五个够你用到进阶阶段了。插件装太多,VS Code 启动会变慢。
配置文件
在项目根目录建 .vscode/settings.json:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "always"
},
"eslint.validate": ["javascript", "javascriptreact"]
}
这样每次保存文件,Prettier 自动格式化,ESLint 自动修能修的问题。
集成终端
按 Ctrl+` 打开内置终端。VS Code 会自动继承你系统的 shell 环境,NVM 切换过的版本在这里同样生效。建议把默认终端改成你常用的 shell(Windows 用 PowerShell,macOS 用 zsh)。
断点调试
在代码里 console.log 排查问题,是初学者标配,也是中级开发者最该戒掉的坏习惯。
VS Code 的 Node.js 调试非常好用,配一次受益整个项目。
快速调试(零配置)
打开一个 .js 文件,按 F5,VS Code 会检测当前文件并用 Node.js 运行。左边会出现调试面板,你可以:
- 点行号左侧设断点
F10单步跳过F11单步进入Shift+F11跳出函数F5继续运行到下一个断点
进阶配置:launch.json
按 F5 时如果弹出「选择环境」,选 Node.js。VS Code 会在 .vscode/launch.json 生成配置:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/app.js"
}
]
}
如果项目用 ESM("type": "module" 在 package.json 里),需要加一行:
{
"type": "node",
"request": "launch",
"name": "Launch ESM",
"program": "${workspaceFolder}/app.js",
"runtimeArgs": ["--experimental-specifier-resolution=node"]
}
Note自 v24 起,ESM 的支持已经非常成熟,大部分场景不需要
--experimental这些 flag 了。但如果你的项目用了比较新的特性(比如 import 断言),调试配置可能需要额外调整。
调试带参数的程序
{
"type": "node",
"request": "launch",
"name": "Debug with args",
"program": "${workspaceFolder}/cli.js",
"args": ["--env", "production", "--port", "8080"]
}
这样启动调试时,会自动带上 node cli.js --env production --port 8080。
环境检查清单
配完开发环境,确认下面几项都能正常工作:
node -v # 期望 v24.x.x(或你项目要求的版本)
npm -v # 期望 10.x.x
nvm list # 能看到你装过的所有版本
VS Code 里打开一个 .js 文件,随便写个 console.,看有没有代码补全。按 F5 能不能直接跑起来。这些都对了,你的开发环境就就绪了。
下一章我们写第一行代码。