0.4.2 为什么我的 Node 版本不对——Node.js 版本管理与 nvm
一句话破题
不同项目需要不同 Node 版本。用 nvm 管理 Node,用 .nvmrc 锁定项目版本,避免“在我机器上能跑”的尴尬。
nvm 安装与配置:Windows/macOS/Linux
- Windows:使用
nvm-windows(Corey Butler 版)。- 安装后在 PowerShell 验证:
Get-Command nvm - 常用命令:
nvm list、nvm install 18.19.0、nvm use 18.19.0
- 安装后在 PowerShell 验证:
- macOS/Linux:使用
nvm(Shell 脚本版)。- 常用命令相同:
nvm ls、nvm install 20、nvm use 20
- 常用命令相同:
Node.js 版本选择策略:LTS vs Current
- 开发与生产优先选择 LTS(长期支持),稳定且生态兼容好。
- 新特性探索或实验环境可用 Current,但不建议用于生产。
项目级版本锁定:.nvmrc
- 在项目根目录创建
.nvmrc,内容为目标版本:
18.19.0- Windows PowerShell 下读取并切换:
powershell
$version = Get-Content .nvmrc | Select-Object -First 1
nvm use $version
node -v环境变量与配置管理
- 当前会话设置:
$env:NODE_ENV = 'development' - 持久化设置:
setx NODE_ENV production - 自定义变量:
$env:API_BASE = 'https://api.example.com'
包管理器配置与优化(配合 nvm 使用)
- registry:
npm config set registry https://registry.npmmirror.compnpm config set registry https://registry.npmmirror.com
- 缓存:
npm cache verifypnpm store prune
AI 协作指南
- 核心意图:让 AI 帮你规范版本与生成切换脚本。
- 需求定义公式:
- “在 Windows PowerShell 下,检测
.nvmrc并自动切换到对应版本,如果未安装则自动安装。”
- “在 Windows PowerShell 下,检测
- 关键术语:
nvm-windows,.nvmrc,LTS,NODE_ENV,registry,cache。
避坑指南
- Windows 下的
nvm-windows与 Unix 的nvm不同;脚本互换需注意兼容。 - 全局 Node 与项目
.nvmrc不一致会导致依赖编译失败(如node-gyp)。 - 切换 Node 版本后,建议清理并重装依赖,确保二进制绑定一致。
