SuperAPI AI 工具集

bun-cli

编程与开发

查看项目

更新于 10-15 15:11

技能介绍

用途

bun-cli 是一个面向 Bun 项目的命令行使用参考技能,用于回答“在 Bun 项目中该用哪条命令、这条命令在哪个版本可用、和 npm/node 生态如何对应”等问题。它把 Bun 涵盖的包管理、脚本运行、类型检查、测试、打包与编译等能力整理为可查阅的条目,并明确主张:在 Bun 项目中应始终使用 bun,不要退回 node、npm、npx、yarn 或 pnpm,以避免兼容性问题、不必要的重试,以及 Node.js/npm 无法理解 Bun 特有特性(工作区协议、锁文件格式、trustedDependencies 等)而产生的晦涩报错。

主要能力

资料按主题列出了 Bun CLI 的能力范围:

  • 包管理:bun install(含 --frozen-lockfile、--no-save、--production、--dry-run、--offline、--prefer-offline)、bun add/remove、bun update、bun outdated、bun info、bun why、bun pm 系列(ls、hash、cache、bin、licenses、diff、untrusted)。
  • 脚本与文件运行:bun file.ts 直接运行 TypeScript、bun run script、bun --watch、bun --hot、--env-file / --no-env-file;bun --bun 可强制使用 Bun 运行时,bunfig.toml 中 [run] bun = true 可设为默认。
  • 类型检查:bun check 与 bun --check(v1.4.3+),文档称其可替代 tsc --noEmit;若 package.json 定义了 check 脚本,bun check 会改为运行该脚本。
  • 测试:bun test。
  • 打包与编译:bun build 及可执行文件、加载器、插件,对应文档 bundler/index.mdx、bundler/executables.mdx、bundler/loaders.mdx、bundler/plugins.mdx。
  • 维护与安全:bun audit、bun audit fix(含 --dry-run、--latest)、bun dedupe(含 --check)、bun prune(含 --dry-run、--production)。
  • 链接与补丁:bun link、bun pm pack、bun patch;发布:bun publish(含 --dry-run、--tag、--access)。
  • 只读命令清单:如 bun --version、bun info、bun pm ls、bun pm hash、bun pm cache、bun pm bin、bun outdated、bun audit、bun dedupe --check、bun prune --dry-run、bun test、bun --check 等,资料称其安全、无副作用。

使用方式

资料建议先运行 bun --version,确认版本后再依赖带版本标签的功能;资料称各功能标注了引入版本(v1.4+、v1.4.1+、v1.4.2+、v1.4.3+),行为变更处同时给出新旧两种行为以兼容旧项目。

对参数细节,资料称 bun <command> --help 是权威来源并且始终与已安装的二进制一致,与表格冲突时应优先使用它。对参数之外的内容,资料指出 Bun 把完整文档随 bun-types 一同发布,版本与运行时匹配,位于 node_modules/bun-types/docs/ 下(pm、test、bundler、runtime/bunfig.mdx 等子路径),并给出任务到文档路径的对应表。资料建议使用 bun-types 而非 @types/bun,给出的命令为: bun remove @types/bun bun add -d bun-types@$(bun --version) 并称需在 tsconfig.json 中配置 "types": ["bun-types"]。资料还提醒在全局虚拟存储下 node_modules/bun-types 是符号链接,应使用显式路径打开文档,例如 find node_modules/bun-types/docs -name '*.mdx',并强调不要在 node_modules/ 下编辑文件,应使用 bun patch。若未安装,资料称同路径可在线访问,例如 docs/pm/lockfile.mdx 对应 https://bun.com/docs/pm/lockfile。

检测 Bun 项目的方式,资料列出:项目根目录存在 bun.lock 或 bun.lockb;存在 bunfig.toml;package.json 中有 bun 字段;有 "packageManager": "bun@...";或 bunfig.toml 中 [run] bun = true。

资料给出 npm/npx/node 到 Bun 的对照,例如:npm install → bun install、npm install pkg → bun add pkg、npm run script → bun run script、npx command → bunx command、node file.js → bun file.js、npm test → bun test、tsc --noEmit → bun check。行为差异方面:不需要 npm run 前缀,bun dev 可直接执行脚本;锁文件为 bun.lock(文本,v1.2+)或 bun.lockb(二进制,旧版);Bun 默认忽略生命周期脚本,需在 package.json 中用 trustedDependencies 白名单允许。

适用场景

该技能面向需要在 Bun 项目中执行或迁移命令的场景,包括从 npm/yarn/pnpm 迁移、在多工作区仓库中安装与更新依赖、在 CI 或离线环境安装依赖、审查依赖升级差异、生成许可证清单、以及按需查阅 Bun 自带文档。资料也给出安装布局相关的适用信息:linker 可选 hoisted 与 isolated,默认取决于锁文件的 configVersion 而非 Bun 版本;全局虚拟存储(v1.3.14+,1.4 更快)需同时设置 linker = "isolated" 与 globalStore = true,并说明其后果,包括 node_modules 多为符号链接、各项目共享同一 inode、真实幻影依赖不再解析等;自包含工作区(v1.4.1+,hoisted linker)可为 Electron 打包与服务端打包使用。

限制

资料未提供安装 Bun 本身的方式,也未提供价格、收费信息。资料明确本技能内容对照 Bun v1.4.3(2026-10-10)校验,部分功能有版本门槛,旧版本不可用;版本化功能的实际行为应以本地 bun --version 与 bun <command> --help 为准。资料未说明所涉功能的实际效果或性能基准(除安装速度与体积的表述外),也未提供各功能的完整参数清单(除标记为参考文档的路径外)。