NVM —— Node.js 版本管理工具

NVM(Node Version Manager)是一个用于管理多个 Node.js 版本的工具,它允许你在同一台机器上安装、切换、卸载不同的 Node.js 版本,有效解决不同项目对 Node.js 版本依赖不一致的问题。

注:本文档同时介绍 Windows 系统下的 nvm-windows 和 Linux/macOS 下的 nvm,两者命令略有不同,会特别说明。

NVM介绍

  • 不同项目可能依赖不同版本的 Node.js(例如 Vue 2 项目可能需要 Node 12,Vue 3 项目可能需要 Node 16+)。
  • 某些 npm 包仅在特定 Node 版本下正常工作。
  • 方便测试应用在不同 Node 版本下的兼容性。
  • 无需反复卸载重装 Node.js,一键切换版本,提高开发效率。

NVM 安装

Windows(nvm-windows)

  1. 卸载已安装的 Node.js (如有) 如果系统已安装 Node.js,建议先卸载,避免冲突。可通过控制面板卸载,并删除相关环境变量(如 NODE_HOME 和 Path 中的 Node.js 条目),避免冲突。

  2. 下载安装包 访问 nvm-windows 发布页,下载最新版本的 nvm-setup.exe

  3. 安装 nvm 双击运行安装程序,设置安装路径(例如 D:\nvm)和 Node.js 的符号链接路径(例如 D:\nodejs)。

    注意:路径中不要包含中文或空格,以免后续出现问题。

  4. 配置镜像源(可选) 由于国内访问官方 Node 镜像较慢,可配置国内镜像。在 nvm 安装目录下找到 settings.txt,添加以下两行:

    ruby 复制代码
    node_mirror: https://npmmirror.com/mirrors/node/
    npm_mirror: https://npmmirror.com/mirrors/npm/

    保存后,后续安装 Node 时会从淘宝镜像下载。

  5. 验证安装 打开新的命令提示符,输入 nvm,若显示帮助信息则安装成功。

    注意 :Windows 下切换版本(nvm use)需要以管理员身份运行命令提示符,否则可能因权限不足而失败。

Linux/macOS

在 Unix-like 系统上安装 nvm 通常使用脚本:

bash 复制代码
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

安装脚本会自动将 nvm 的配置添加到 shell 配置文件(如 ~/.bashrc~/.zshrc 等)。安装完成后,重新加载配置或重新打开终端:

bash 复制代码
source ~/.bashrc   # 如果使用 bash
# 或
source ~/.zshrc    # 如果使用 zsh

验证安装:nvm --version

可选配置:如需使用国内镜像加速下载,可以在终端中设置环境变量:

arduino 复制代码
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/

为了永久生效,可将该行添加到 shell 配置文件中。

NVM 常用命令

命令 说明
nvm version 查看 nvm 版本
nvm listnvm ls 列出已安装的 Node 版本,当前使用版本前会标注 *
nvm list available (仅 Windows) 列出可远程安装的 Node 版本
nvm install <version> 安装指定版本的 Node.js,例如 nvm install 16.20.0
nvm install latest 安装最新版本的 Node.js
nvm install lts 安装最新的 LTS 版本
nvm use <version> 切换当前会话使用的 Node 版本(Windows 需管理员权限
nvm uninstall <version> 卸载指定版本的 Node.js
nvm alias default <version> 设置默认使用的 Node 版本(新打开命令行时自动使用该版本)
nvm current 显示当前正在使用的 Node 版本
nvm reinstall-packages <version> (仅 Unix)<version> 版本的全局 npm 包迁移到当前版本
nvm --help 查看帮助信息

示例

csharp 复制代码
# 列出可安装的版本(Windows)
nvm list available
​
# 安装 Node.js 16.20.0
nvm install 16.20.0
​
# 安装 Node.js 18.16.0
nvm install 18.16.0
​
# 切换到 Node 16.20.0
nvm use 16.20.0
​
# 查看已安装版本
nvm list
​
# 设置默认版本为 18.16.0
nvm alias default 18.16.0

常见问题

1. nvm use 切换版本时提示"拒绝访问"或"exit status 1"

  • 原因:nvm 需要管理员权限才能创建符号链接切换 Node 版本。
  • 解决 :以管理员身份打开命令提示符,再次执行 nvm use <version>

2. 安装 Node 版本后,npm 命令找不到

  • 原因:可能是镜像配置问题或安装包不完整。
  • 解决 :尝试重新安装该版本,或手动配置 npm 镜像源。在 nvm 安装目录的 settings.txt 中确认镜像地址正确。

3. 全局安装的包无法在切换版本后使用

  • 原因:每个 Node 版本拥有独立的全局包目录,切换版本后需要重新安装全局包。

  • 解决

    • 手动重新安装所需全局包(如 npm install -g yarn)。
    • Unix 用户 可以使用 nvm reinstall-packages <旧版本号> 将旧版本的全局包迁移到新版本。
    • Windows 用户暂无直接迁移命令,可考虑将全局包安装到自定义目录并配置环境变量,但一般不推荐。

4. nvm 命令找不到

  • 原因:nvm 未正确添加到环境变量,或未重启终端。
  • 解决:检查环境变量中是否包含 nvm 安装路径,重启命令行或系统。

卸载 NVM

Windows

  1. 运行 nvm 安装目录下的 uninstall.exe 进行卸载。
  2. 删除 nvm 安装文件夹及 Node.js 符号链接文件夹(如 D:\nodejs)。
  3. 清理环境变量:删除用户变量和系统变量中的 NVM_HOMENVM_SYMLINK,以及 Path 中的相关条目。

Linux/macOS

  1. 删除 nvm 目录(通常为 ~/.nvm):

    bash 复制代码
    rm -rf ~/.nvm
  2. 编辑 shell 配置文件(如 ~/.bashrc~/.zshrc),移除与 nvm 相关的配置行。

  3. 重新加载配置。

相关推荐
嵌入式-老费2 小时前
vivado hls的应用(axis接口)
前端·webpack·node.js
无巧不成书02184 小时前
Node.js全平台安装教程
windows·node.js·node.js安装·npm国内镜像配置·nvm管理node.js版本·macos m1安装
zhenxin01227 小时前
2024最新版Node.js下载安装及环境配置教程【保姆级】
node.js
Hommy888 小时前
【开源剪映小助手-客户端】Node.js 集成
开源·node.js
竹林8181 天前
在Web3前端用Node.js子进程批量校验钱包,我踩了这些性能与安全的坑
javascript·node.js
oyzz1201 天前
Windows 上彻底卸载 Node.js
windows·node.js
小霍同学1 天前
Node.js 起步指南
node.js
codingWhat1 天前
用 Express 简单Mock自助终端机读取身份证
node.js·express
回到原点的码农1 天前
TypeScript 与后端开发Node.js
javascript·typescript·node.js