node版本管理nvs

424 阅读3分钟

官方链接: github.com/jasongin/nv…

1. 什么是 NVS?

NVS (Node Version Switcher) 是一个用于安装和管理多个 Node.js 版本的命令行工具。它的主要目标是:

  • 跨平台:在 Windows, macOS 和 Linux 上提供一致的用户体验。
  • 轻量:核心逻辑简单,不依赖 Node.js 自身进行安装。
  • 灵活:可以轻松切换全局和项目本地的 Node.js 版本。
  • 自动化:通过 .nvmrc.node-version 文件自动切换项目版本。

2. NVS vs. NVM

特性NVS (Node Version Switcher)NVM (Node Version Manager)
平台支持Windows, macOS, Linux (原生支持)主要为 macOS, Linux 设计,Windows 需通过 WSL 或第三方移植版
安装方式独立的脚本或安装包,不依赖 Node.jsShell 脚本,需要 curl/wget
性能启动速度快,因为它不加载大量 shell 函数每次打开终端都会加载脚本,可能稍慢
自动切换支持 .nvmrc.node-version主要支持 .nvmrc
核心语言主要使用 Go 语言编写使用 Shell Script (Bash) 编写
适用场景Windows 用户首选,或追求跨平台一致性的开发者macOS/Linux 用户的经典选择,社区庞大

结论:如果你是 Windows 开发者,或者在多平台间切换工作,NVS 是一个绝佳的选择。

3. 安装 NVS

Windows (推荐)

最简单的方式是使用安装程序:

  1. 访问 NVS 的 GitHub Releases 页面
  2. 下载最新的 .nvs.msi 安装包。
  3. 双击运行,按照向导完成安装。安装程序会自动配置好环境变量。
  4. 安装完成后,重新打开一个新的终端(PowerShell 或 CMD)即可使用 nvs 命令。
macOS / Linux

使用 curlwget 安装:

# 使用 curl
curl -o- https://raw.githubusercontent.com/jasongin/nvs/master/nvs.sh | bash
# 或者使用 wget
wget -qO- https://raw.githubusercontent.com/jasongin/nvs/master/nvs.sh | bash

安装后,需要将 NVS 添加到你的 shell 配置文件中(如 ~/.bash_profile, ~/.zshrc, ~/.profile):

export NVS_HOME="$HOME/.nvs"
[ -s "$NVS_HOME/nvs.sh" ] && . "$NVS_HOME/nvs.sh"

然后,重新加载你的 shell 配置打开一个新的终端

source ~/.bash_profile  # 或 ~/.zshrc

4. 核心常用命令

4.1. 查找和安装版本
  • nvs ls-remotenvs ls-remote lts:列出所有可供远程安装的版本。加上 lts 可以只列出长期支持版。
  • nvs add <version>:下载并安装指定版本。
    • nvs add latest:安装最新的 Node.js 版本。
    • nvs add lts:安装最新的 LTS 版本。
    • nvs add 18:安装最新的 18.x.x 版本。
    • nvs add 20.9.0:安装指定的 20.9.0 版本。
4.2. 切换版本
  • nvs use <version>切换当前终端会话的 Node.js 版本。这是最常用的命令。
    • nvs use lts
    • nvs use 18
  • nvs link <version>:将指定版本设置为系统全局默认版本。这样每次打开新终端都会自动使用这个版本。
    • nvs link lts:将最新的 LTS 版本设为默认。
4.3. 查看和管理
  • nvsnvs ls:列出已安装的所有版本,并用 > 标记当前正在使用的版本,用 ^ 标记全局默认版本。
  • nvs current:只显示当前正在使用的版本。
  • nvs uninstall <version>:卸载指定版本。

5. 项目级版本管理 (核心优势)

这是 NVS 最强大的功能之一,它能实现进入项目目录自动切换 Node.js 版本

工作原理

NVS 会自动检测当前目录及其父目录中的以下文件:

  • .nvmrc
  • .node-version 当这些文件存在时,NVS 会读取文件内容(一个版本号或别名),并自动切换到对应的 Node.js 版本。
操作步骤
  1. 在你的项目根目录下创建版本文件
    # 假设你的项目需要 Node.js 18.17.0
    echo "18.17.0" > .nvmrc
    # 或者使用 .node-version 文件
    # echo "18.17.0" > .node-version
    
  2. 确保 NVS 的自动切换功能已启用 (默认通常是开启的)。
    • 检查状态:nvs auto (会显示 onoff)。
    • 如果是 off,运行 nvs auto on 开启它。
  3. 验证效果
    • cd 到你的项目目录。
    • 运行 nvs current,你会发现它已经自动切换到了 18.17.0
    • cd 到其他没有版本文件的目录,它会自动切换回你的全局默认版本。 最佳实践:将 .nvmrc.node-version 文件提交到你的 Git 仓库,这样团队中的所有成员都可以使用 NVS 自动获得正确的开发环境。