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 版本管理专家了!🎯


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

相关链接:

相关推荐
快起来别睡了几秒前
代理模式:送花风波
前端·javascript·架构
海底火旺2 分钟前
电影应用开发:从代码细节到用户体验优化
前端·css·html
陈随易11 分钟前
Gitea v1.24.0发布,自建github神器
前端·后端·程序员
前端付豪14 分钟前
汇丰银行技术架构揭秘:全球交易稳定背后的“微服务+容灾+零信任安全体系”
前端·后端·架构
邹荣乐17 分钟前
uni-app开发微信小程序的报错[渲染层错误]排查及解决
前端·微信小程序·uni-app
今天出摊吗17 分钟前
表单元素的默认提交行为
前端
今天出摊吗18 分钟前
CSS 动态视口单位 dvh 和 dvw
前端
南方kenny19 分钟前
React组件化实战:从零打造智能TodoList清单
前端·react.js·aigc
JacksonGao20 分钟前
前端三国志:React、Vue 与 Svelte 之战
前端·前端框架
CharlesYoung1868120 分钟前
记录一次引入循环,导致undefined
前端