BVM — Bun 版本管理器
想在 Windows、macOS、Linux 间稳定切换 Bun 版本,并避免 PATH 漂移和全局包冲突?
⚡ 一键极速安装
BVM 提供了智能安装脚本,自动检测您的网络环境。中国用户会自动切换至淘宝镜像源,海外用户使用官方源,无需手动配置。
给 AI 助手自动执行(安装 + setup + 验证 + 生成 Skill):install.md
方式 1: Shell 脚本 (推荐 - macOS / Linux)
curl -fsSL https://bvm-core.pages.dev/install | bash方式 2: PowerShell (推荐 - Windows)
irm https://bvm-core.pages.dev/install | iex方式 3: NPM (可选)
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 自身升级到最新版本。
执行命令
您可以在不切换全局环境的情况下,使用特定版本运行命令:
bvm run 1.0.30 index.ts别名管理
为特定版本创建自定义名称:
bvm alias prod 1.1.0
bvm use prod项目级配置 (.bvmrc)
BVM 支持通过 .bvmrc 文件自动切换版本。在项目根目录下创建一个包含版本号的文件:
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_DIR、PATH、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