Skip to content

BVM — Bun 版本管理器


想在 Windows、macOS、Linux 间稳定切换 Bun 版本,并避免 PATH 漂移和全局包冲突?

⚡ 一键极速安装

BVM 提供了智能安装脚本,自动检测您的网络环境。中国用户会自动切换至淘宝镜像源,海外用户使用官方源,无需手动配置。

给 AI 助手自动执行(安装 + setup + 验证 + 生成 Skill):install.md

方式 1: Shell 脚本 (推荐 - macOS / Linux)

bash
curl -fsSL https://bvm-core.pages.dev/install | bash

方式 2: PowerShell (推荐 - Windows)

powershell
irm https://bvm-core.pages.dev/install | iex

方式 3: NPM (可选)

bash
npm install -g bvm-core@latest --foreground-scripts

核心特性

  • 🚀 零延迟启动:采用 Shim 架构设计,Shell 启动耗时约为 0ms。
  • 🛡️ 地堡架构 (Bunker Architecture):BVM 拥有独立的私有运行环境,即使卸载系统 Bun,BVM 依然能稳定工作并自愈。
  • 🛡️ 原子化隔离:每个 Bun 版本拥有独立的全局包目录,彻底告别依赖冲突。
  • 🌏 零魔法全网通:不仅安装 Bun 时飞快,更能自动检测并配置最佳镜像源(如 npmmirror),确保后续的 bun install 开箱即用,无需手动配置。
  • 📦 零依赖自举:BVM 自身能够实现环境自举。安装无需预设环境(它会自动复用系统 Bun 或按需下载)。

快速上手

常用命令

  • bvm install latest: 安装最新的稳定版 Bun。
  • bvm install 1.1.0: 安装指定版本。
  • bvm use 1.1.0: 立即切换活跃的 Bun 版本。
  • bvm default 1.1.0: 设置全局默认版本(新窗口生效)。
  • bvm ls: 列出本地已安装的所有版本。
  • bvm ls-remote: 列出注册表上可用的所有版本。
  • bvm uninstall 1.1.0: 卸载指定版本。
  • bvm upgrade: 将 BVM 自身升级到最新版本。

执行命令

您可以在不切换全局环境的情况下,使用特定版本运行命令:

bash
bvm run 1.0.30 index.ts

别名管理

为特定版本创建自定义名称:

bash
bvm alias prod 1.1.0
bvm use prod

项目级配置 (.bvmrc)

BVM 支持通过 .bvmrc 文件自动切换版本。在项目根目录下创建一个包含版本号的文件:

bash
echo "1.1.0" > .bvmrc

常见问题 / FAQ

Windows / macOS / Linux 怎么快速切换 Bun 版本?

安装 BVM 后,直接使用 bvm install <version> 安装版本,再用 bvm use <version> 切换即可。三大平台命令一致。

BVM 是 Bun 版的 nvm/fnm 吗?

可以这么理解。BVM 是 Bun 的版本管理器,在 nvm/fnm 思路上补充了 Bun 场景的版本隔离、shim 机制和自举运行时能力。

为什么切换 Bun 版本后,全局包命令不见了?

这是预期行为。BVM 采用“按版本隔离”的全局包目录。你需要在目标 Bun 版本下重新安装对应全局工具。

`.bvmrc` 怎么做项目级版本锁定?

在项目根目录创建 .bvmrc,写入版本号(例如 1.1.0)。BVM 会按该版本解析并用于项目工作流。

支持 skills 自动安装吗(例如读取 SKILL.md 自动装)?

不支持。BVM 只负责 Bun 运行时和版本切换;skills 的安装与管理由 AI Agent 框架或对应工具链负责。

怎么快速定位 BVM 环境问题?

运行 bvm doctor。它会检查 BVM_DIRPATH、shell 类型、目录权限和网络连通性,并输出可直接复制的修复命令。


设计哲学

ArchSense (架构自举)

BVM 不分发沉重的预编译二进制文件。相反,它利用 Bun 管理 Bun。安装程序会首先下载一个极简的 Bun 运行时作为 BVM 的执行引擎,确保管理器自身始终运行在最优化的环境中。

原子化隔离

不同于仅切换 PATH 的管理器,BVM 实现了 文件系统级锁定。它在执行命令前动态注入唯一的 BUN_INSTALL 路径,确保不同版本间安装的全局包永不冲突。


排障

  • 切换版本后还存在 pm2/cowsay 等全局命令:先执行 bvm setup,重启终端,再检查 which bun(macOS/Linux)是否指向 ~/.bvm/shims/bun;Windows 用 where.exe bun 并确保 ...\\.bvm\\shims\\bun.cmd 排第一。
  • 切换版本后找不到某个全局命令:这是预期行为(按版本隔离),请在当前版本下重新 bun install -g <pkg>

开源协议

MIT © EricLLLLLL

Released under the MIT License.