node 切换版本,每次打开都是切换前的版本怎么办?Node.js 版本管理神器 NVM 完全使用指南

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

解决:

  1. 检查安装脚本是否正确执行
  2. 确保以下代码在 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"
  1. 重新加载配置:
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> 查看版本安装路径

🚀 最佳实践

  1. 项目开始前先确定 Node.js 版本 ,并创建 .nvmrc 文件
  2. 团队协作时统一 Node.js 版本,避免"在我机器上能跑"的问题
  3. 定期清理不用的版本,释放磁盘空间
  4. 使用 LTS 版本进行生产环境部署
  5. 设置合理的默认版本,通常是最新的 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 版本
  • ✅ 避免版本冲突问题
  • ✅ 提高开发效率
  • ✅ 更好地与团队协作

记住核心要点:

  1. 安装版本nvm install <version>
  2. 切换版本nvm use <version>
  3. 设置默认nvm alias default <version> 👈 解决新终端版本切换问题
  4. 项目管理 :使用 .nvmrc 文件

现在你就是 Node.js 版本管理专家了!🎯


如果这篇文章对你有帮助,请点个赞👍 支持一下!有问题欢迎在评论区讨论~

相关链接:

相关推荐
Z兽兽1 小时前
React@18+Vite项目配置env文件
前端·react.js·前端框架
SuniaWang1 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
A_nanda2 小时前
根据AI提示排查vue前端项目
前端·javascript·vue.js
happymaker06262 小时前
web前端学习日记——DAY05(定位、浮动、视频音频播放)
前端·学习·音视频
~无忧花开~2 小时前
React状态管理完全指南
开发语言·前端·javascript·react.js·前端框架
LegendNoTitle3 小时前
计算机三级等级考试 网络技术 选择题考点详细梳理
服务器·前端·经验分享·笔记·php
@大迁世界3 小时前
1.什么是 ReactJS?
前端·javascript·react.js·前端框架·ecmascript
BJ-Giser4 小时前
Cesium 基于EZ-Tree的植被效果
前端·可视化·cesium
王码码20355 小时前
Flutter for OpenHarmony:Flutter 三方库 algoliasearch 毫秒级云端搜索体验(云原生搜索引擎)
android·前端·git·flutter·搜索引擎·云原生·harmonyos
发现一只大呆瓜5 小时前
深入浅出 AST:解密 Vite、Babel编译的底层“黑盒”
前端·面试·vite