搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

nvm-sh/nvm

开发工具

用符合 POSIX 的 shell 脚本在单个环境中安装、切换多个 Node.js 版本。

95,537
10,528
Shell
MIT
创建于 16 年前

项目介绍

nvm 是一个按用户、按 shell 生效的 Node.js 版本管理器,本身是符合 POSIX 的 shell 脚本。它可以在命令行安装、列出、设别名和切换不同的 Node.js 版本(包括 LTS 线和 io.js),让不同项目使用各自的 Node 版本,而不必把某个版本装到系统全局。它支持 sh、dash、ksh、zsh、bash,主要面向 Unix、macOS,以及 WSL/Git Bash/Cygwin 环境(About)。

基本用法很直接:

nvm install 24
nvm use 22
nvm use 20

README 给出的结果示例是:执行 nvm install 24 后 node -v 返回 v24.x,执行 nvm use 22 后返回 v22.x(Intro)。

安装与首次使用

在 Linux 或 macOS 上,安装脚本会把 nvm 克隆到 ~/.nvm,并把加载语句写入 shell 配置文件:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.41.0/install.sh | bash

也提供了 Wget 版本(安装脚本)。安装后验证:

command -v nvm

应输出 nvm;which nvm 不会生效,因为 nvm 是被 source 的 shell 函数,不是可执行二进制(验证安装)。macOS 上需先安装 Xcode command line tools。Linux 上如果提示找不到命令,可以打开新终端,或手动 source 对应配置文件。需要自定义安装目录或配置文件时,可在运行脚本前设置 NVM_DIR 或 PROFILE。

手动安装或 Git 安装方式,README 也给出了克隆仓库的命令,以及加载 nvm.sh 和 bash_completion 的 profile 片段(Git 安装)。

版本操作

文档中的常用命令包括:

  • nvm install node 安装最新 Node.js,nvm install 14.7.0 安装指定版本。
  • nvm ls 查看已安装版本,nvm ls-remote 查看可安装版本。
  • nvm alias default 18 设置新 shell 默认使用的版本。
  • nvm install --lts 和 lts/* 别名可以选择 LTS 版本。
  • nvm use system 切回系统安装的 Node.js。
  • nvm install --reinstall-packages-from=node node 把全局 npm 包迁移到新版本。
  • nvm install --offline 14.7.0 用本地缓存离线安装。

项目级版本固定通过项目根目录或父目录中的 .nvmrc 实现;命令行不传版本时,nvm use、nvm install 和 nvm which 会读取它(.nvmrc)。

使用约束

nvm 按用户、按 shell 生效,安装脚本会修改 shell profile,因此权限和 profile 路径会影响安装结果。Linux 和 macOS 上安装脚本需要 Git,macOS 还需先安装 Xcode command line tools。Windows 不是常规直接支持平台,但可能通过 WSL、Git Bash/MSYS 或 Cygwin 使用;nvm-windows、nodist、nvs 是另外的项目(Important Notes)。

如果 nodejs.org 没有对应平台和架构的二进制包,nvm install 默认会回退到源码编译,速度慢且需要 C++ 工具链;设置 NVM_NO_SOURCE_FALLBACK=1 可以让缺少二进制包直接报错。Alpine Linux 使用 musl,nvm 在 x64 和 arm64 上会请求 musl 构建;较老的 Alpine 版本需要额外软件包,且可安装的 Node 版本有上限(Alpine Linux)。

已知冲突包括 ~/.npmrc 中的 npm prefix 设置、NPM_CONFIG_PREFIX 和 PREFIX 环境变量,以及 shell 中的 set -e(Compatibility Issues)。项目采用 MIT 许可证,属于 OpenJS Foundation 生态;README 说明只支持最新版本(Project Support)。

HotRepo 点评

nvm 是一个运行了很久的开发者工具:仓库创建于 2010 年,2026 年 8 月至 10 月的快照记录显示总 Star 从约 94.4k 升到 95.5k,单日新增多在几十,2026-09-06 出现过 151 的单日增量。这个节奏更像长期维护型项目,而不是新项目爆发;现有数据中没有记录到该仓库的全语言日榜名次,因此仅凭 Star 数不能说明当前热度。关联的 Hacker News 讨论只有 2021 年一个关于 Ubuntu PPA 安装包的帖子,一条评论认为安装脚本不如发行版包管理器方便,这是分发方式的分歧,不是项目本身的功能问题。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

NVM – Package for Ubuntu PPA and Backport
▲ 1 · 1 条评论 · 2021年7月3日