Node.js 版本管理神器 NVM 完全使用指南
还在为 Node.js 版本切换而烦恼?一文搞定 NVM 的安装、配置和常见问题!
🤔 前言
在前端开发中,我们经常会遇到不同项目需要不同 Node.js 版本的情况。比如老项目需要 Node.js 14,新项目要求 Node.js 18 或 22。如果每次都要卸载重装 Node.js,那简直是噩梦!
这时候 NVM(Node Version Manager) 就派上用场了!它可以让你在同一台机器上轻松管理多个 Node.js 版本。
📦 什么是 NVM?
NVM 是一个 Node.js 版本管理工具,允许你:
- 安装多个 Node.js 版本
- 在不同版本间快速切换
- 为不同项目设置特定的 Node.js 版本
- 设置全局默认版本
🛠️ 安装 NVM
macOS / Linux 安装
bash
# 使用 curl 安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# 或使用 wget 安装
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
安装完成后,重启终端或执行:
bash
source ~/.bashrc
# 或者
source ~/.zshrc
Windows 安装
Windows 用户推荐使用 nvm-windows
🎯 基础使用命令
查看 NVM 版本
bash
nvm --version
查看可安装的 Node.js 版本
bash
# 列出所有可用版本
nvm list-remote
# 列出 LTS 版本
nvm list-remote --lts
安装 Node.js 版本
bash
# 安装最新版本
nvm install node
# 安装指定版本
nvm install 18.20.0
nvm install 20.11.0
nvm install 22.0.0
# 安装最新 LTS 版本
nvm install --lts
查看已安装版本
bash
nvm list
# 或简写
nvm ls
切换 Node.js 版本
bash
# 切换到指定版本
nvm use 18.20.0
nvm use 20
nvm use 22
# 切换到最新版本
nvm use node
# 切换到 LTS 版本
nvm use --lts
查看当前使用版本
bash
nvm current
⚡ 高级技巧
设置默认版本 ⭐
这是最重要的功能之一!很多人遇到的问题就是:
明明用
nvm use 22
切换了版本,为什么打开新终端又变回老版本了?
原因: nvm use
只在当前终端会话中生效,新开终端会使用默认版本。
解决方案: 设置默认版本
bash
# 设置 Node.js 22 为默认版本
nvm alias default 22
# 设置具体版本为默认
nvm alias default 18.20.0
# 查看默认版本
nvm alias default
项目级版本管理
在项目根目录创建 .nvmrc
文件:
bash
# 在项目根目录
echo "18.20.0" > .nvmrc
# 或者
echo "lts/*" > .nvmrc
然后在项目目录下直接使用:
bash
# 自动使用 .nvmrc 中指定的版本
nvm use
# 安装 .nvmrc 中指定的版本(如果未安装)
nvm install
自动切换版本
在 .zshrc
或 .bashrc
中添加以下代码,实现进入项目目录自动切换版本:
bash
# 自动切换 Node.js 版本
autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" = "N/A" ]; then
nvm install
elif [ "$nvmrc_node_version" != "$node_version" ]; then
nvm use
fi
elif [ "$node_version" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
🔧 常见问题解决
问题1:新终端版本自动切换回老版本
症状: 执行 nvm use 22
后,新开终端又变成其他版本
解决:
bash
# 检查当前默认版本
nvm alias default
# 设置新的默认版本
nvm alias default 22
# 验证
nvm current
问题2:命令找不到
症状: command not found: nvm
解决:
- 检查安装脚本是否正确执行
- 确保以下代码在 shell 配置文件中:
bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
- 重新加载配置:
bash
source ~/.zshrc
问题3:安装速度慢
解决: 使用国内镜像
bash
# 设置淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/
# 或者安装时指定镜像
NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/ nvm install 20
问题4:卸载 Node.js 版本
bash
# 卸载指定版本
nvm uninstall 16.20.0
# 注意:不能卸载当前正在使用的版本
📊 实用命令速查表
命令 | 功能 |
---|---|
nvm install <version> |
安装指定版本 |
nvm use <version> |
切换到指定版本 |
nvm alias default <version> |
设置默认版本 |
nvm current |
查看当前版本 |
nvm ls |
查看已安装版本 |
nvm ls-remote |
查看可安装版本 |
nvm uninstall <version> |
卸载指定版本 |
nvm which <version> |
查看版本安装路径 |
🚀 最佳实践
- 项目开始前先确定 Node.js 版本 ,并创建
.nvmrc
文件 - 团队协作时统一 Node.js 版本,避免"在我机器上能跑"的问题
- 定期清理不用的版本,释放磁盘空间
- 使用 LTS 版本进行生产环境部署
- 设置合理的默认版本,通常是最新的 LTS 版本
💡 进阶技巧
批量操作
bash
# 安装多个版本
nvm install 16 && nvm install 18 && nvm install 20
# 在所有版本中安装全局包
nvm exec 16 npm install -g yarn
nvm exec 18 npm install -g yarn
nvm exec 20 npm install -g yarn
性能优化
bash
# 设置更快的镜像源
echo 'export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/' >> ~/.zshrc
# 延迟加载 NVM(提升终端启动速度)
# 在 .zshrc 中替换默认加载方式
nvm() {
unset -f nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm "$@"
}
🎉 总结
NVM 是前端开发者必备的工具之一,掌握它可以让你:
- ✅ 轻松管理多个 Node.js 版本
- ✅ 避免版本冲突问题
- ✅ 提高开发效率
- ✅ 更好地与团队协作
记住核心要点:
- 安装版本 :
nvm install <version>
- 切换版本 :
nvm use <version>
- 设置默认 :
nvm alias default <version>
👈 解决新终端版本切换问题 - 项目管理 :使用
.nvmrc
文件
现在你就是 Node.js 版本管理专家了!🎯
如果这篇文章对你有帮助,请点个赞👍 支持一下!有问题欢迎在评论区讨论~
相关链接: