node版本管理nvs

官方链接: 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.js Shell 脚本,需要 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 安装:

bash 复制代码
# 使用 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):

bash 复制代码
export NVS_HOME="$HOME/.nvs"
[ -s "$NVS_HOME/nvs.sh" ] && . "$NVS_HOME/nvs.sh"

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

bash 复制代码
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. 在你的项目根目录下创建版本文件

    bash 复制代码
    # 假设你的项目需要 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 自动获得正确的开发环境。
相关推荐
可乐鸡翅yeah_1 小时前
hls.js 多实例并发踩坑,多视频页面播放器内存与冲突问题解决
开发语言·前端·javascript·音视频·hls·m3u8·m3u8在线播放
涛涛ing1 小时前
你的页面为什么总是卡成PPT?2026年,90%的前端都忽略了主线程
前端
SoaringHeart2 小时前
Flutter 进阶 | 组件封装:用 CustomPainter 实现光环动画组件AnimatedHalo
前端·flutter
IT_陈寒2 小时前
JavaScript的隐式转换太坑了,我的==比较怎么就炸了?
前端·人工智能·后端
雪芽蓝域zzs2 小时前
第十四节:后端返回权限动态路由
前端·javascript·vue.js
Rain5092 小时前
谁动了我的 URL?——记一次微前端“灵异 Bug“的排查实录
前端·vue.js·人工智能·前端框架·bug·ai编程
bjzhang752 小时前
使用HTML+CSS美化上传进度条展示
前端·css·html
何以解忧,唯有..2 小时前
Vue 3 响应式核心:ref() 与 reactive() 的深入解析与实战
前端·javascript·vue.js
晴天163 小时前
Chrome DevTools Protocol(CDP)分享-Day36
前端·chrome·chrome devtools
风骏时光牛马3 小时前
程序员的职场成长:技术之外,更要修炼底层思考力
前端