前言
前端开发绕不开的一件事:Node 版本不兼容。刚换电脑装了最新版 Node,结果公司老项目启动报错;同时维护几个项目,一个要 Node14,一个要 Node18,来回卸载重装简直折磨。
这篇就把 nvm 是什么、怎么装、怎么用、遇到坑怎么解决 一次性讲清楚,全是实战经验,看完直接上手。
一、nvm 到底是什么?
nvm = Node.js Version Management一个用来管理多个 Node 版本的工具,可以:
- 一台电脑装 N 个 Node
- 一条命令随时切换版本
- 不同版本环境完全隔离,互不干扰
重要且正确的平台说明
- 官方 nvm:支持 macOS / Linux / Windows WSL
- Windows 原生系统:不支持官方 nvm,要用 nvm-windows(第三方独立工具)
两者命令很像,但安装、配置、坑点不一样,不能完全混用。
二、安装步骤(靠谱版)
2.1 macOS / Linux / WSL 安装官方 nvm
终端执行官方脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
安装完成后关闭终端重新打开,再验证:
nvm --version
如果提示 command not found,手动把环境变量加到 shell 配置:
# zsh
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> ~/.zshrc
source ~/.zshrc
2.2 Windows 原生安装 nvm-windows
- 去 GitHub 下载最新版:github.com/coreybutler…
- 下载
nvm-setup.exe - 安装路径不要有中文、空格、特殊字符
- 安装完打开 cmd / PowerShell 验证:
nvm version
三、日常最常用命令(记住这些就够)
# 查看本地已安装的 Node
nvm ls
# 安装指定 Node 版本
nvm install 16.20.2
nvm install 18.18.0
nvm install 20.10.0
# 切换 Node 版本
nvm use 16.20.2
# 设置默认 Node 版本(重启终端也生效)
nvm alias default 18.18.0
# 卸载某个 Node
nvm uninstall 16.20.2
# 查看当前 Node 版本
node -v
npm -v
Windows 特别注意
nvm use 必须以管理员身份运行终端,否则切换不生效,还不报错。
四、npm /yarn/pnpm 与 Node 的关系
- 每个 Node 版本自带专属 npm
- 全局安装的包(yarn、pnpm、vue-cli、vite 等)→ 只对当前 Node 版本生效
- 切换 Node 后,全局工具需要重新安装
示例:
nvm use 18
npm install -g pnpm yarn
这不是 bug,是 nvm 的环境隔离设计。
五、高频踩坑 & 解决方案(全是实战坑)
坑 1:安装完 nvm 提示 command not found
原因:shell 配置没加载解决:把 nvm 初始化代码写入 .zshrc / .bash_profile 并 source。
坑 2:Windows nvm use 切换无效
原因:没有管理员权限解决:右键终端 → 以管理员身份运行,再执行 nvm use。
坑 3:安装 Node 速度极慢 / 下载失败
原因:默认源在国外**解决:**mac / Linux:
echo 'export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node' >> ~/.zshrc
source ~/.zshrc
Windows nvm-windows:
nvm node_mirror https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/
坑 4:切换 Node 后项目启动报错
原因:node_modules 是旧版本 Node 编译的解决:
删除 node_modules 和 package-lock.json
重新 npm install
坑 5:切换 Node 后全局包不见了
原因:nvm 多版本环境完全独立解决:切到对应 Node 后,重新全局安装一遍。
坑 6:node 切换了,但 npm 还是旧的
原因:系统之前装过独立 Node,环境变量污染解决:卸载系统级 Node,只使用 nvm 管理。
六、真实工作场景示例
公司项目要求 Node16,本地默认是 Node20:
nvm install 16.20.2
nvm use 16.20.2
nvm alias default 16.20.2
然后清依赖重装:
rm -rf node_modules package-lock.json
npm install
项目基本就能正常跑了。
如果项目有node10版本的一定要安装nvm 1.2.1,否则下载node高版本的时候下不下来
七、总结
- nvm 是前端必备多版本管理工具,告别 Node 冲突
- macOS/Linux/WSL 用官方 nvm,Windows 用 nvm-windows
- 不同 Node 环境互相隔离,全局包不互通
- 90% 的项目启动异常,都是 Node 版本不匹配
- 切换版本 + 重装依赖,基本都能解决