如何使用 Bun:安装 uv 同级流程 bun init、bun add、bun run 与 npm 对照

官方安装 Bun,init/add/run 走通第一条 dev 脚本,并对照 npm。

第一次在仓库里用 Bun,常见卡点不是「会不会 JavaScript」,而是装完不知道 bun init、bun add 和 bun run 各管哪一段,以及它和 npm / Node 怎么对照。按官方安装脚本装好 Bun,初始化项目、加依赖、跑 package.json 脚本,再试直接跑 TypeScript 文件。

检索词是 如何使用 Bun:安装、bun init、bun add、跑脚本与 npm 对照。下文对照 bun.sh/docs 的安装、项目管理与 CLI。Bun 是独立运行时与工具链,版本与命令以你本机 bun --version 与文档为准。Python 侧类似工作流见站内 uv 与 pip/venv 对照;更早的 Bun 入门见 Bun 安装与 TypeScript。要对齐脚本输出,用 wbroom 开短会,见 如何创建与加入房间。

安装 Bunbun init / addbun run 脚本

Bun 在仓库里做什么

Bun 由 Oven 维护,提供 JavaScript/TypeScript 运行时、包管理器(类似 npm/yarn/pnpm)和测试/打包等工具。日常开发里你多半会用到:bun init 生成 package.json,bun add 安装依赖并写入 lockfile,bun run <script> 执行 package.json 的 scripts,以及 bun run file.ts 直接执行入口文件而未必先编译。

init
脚手架
add
加依赖
run
脚本 / 文件

安装 Bun

  1. 1

    macOS / Linux 官方脚本

    在终端执行文档中的安装命令(常见为 curl -fsSL https://bun.sh/install | bash,以 bun.sh/docs/installation 当前说明为准)。安装完成后重开终端或按提示加载 shell 配置。

  2. 2

    验证版本

    运行 bun --version 与 which bun,确认 PATH 指向官方安装位置。Windows 用户按文档使用 PowerShell 或 WSL 路径。

  3. 3

    与 mise / nvm 并存

    若用 mise 管理 Node,决定「此仓库用 Bun 还是 Node」并在 README 写清;避免 CI 与本地默认运行时不一致。

bun init:创建或接入项目

  1. 1

    空目录初始化

    在目标文件夹运行 bun init,按交互选择模板(空白、React 等,选项以 CLI 为准)。会生成 package.json,可能包含 tsconfig.json 与示例文件。

  2. 2

    已有 npm 仓库

    若已有 package.json,通常不必再 init;直接 bun install 根据 lockfile 或 package 安装依赖(Bun 会生成/使用 bun.lock,行为见官方文档)。

  3. 3

    第一条 scripts

    在 package.json 的 scripts 里加 "dev": "bun run src/index.ts" 或框架默认命令,便于下一步 bun run dev 验证。

bun add:安装依赖

  1. 1

    生产依赖

    bun add lodash 类似 npm install lodash,写入 dependencies 并更新 lockfile。加开发依赖用 bun add -d typescript(标志以文档为准)。

  2. 2

    一次性安装

    克隆仓库后先 bun install,再开发;CI 里同样用 bun install --frozen-lockfile 或文档推荐的 frozen 标志。

  3. 3

    与 npm 混用注意

    同一仓库长期只维护一种 lockfile 策略;若从 npm 迁移,按 bun.sh 迁移指南处理 package-lock.json 与 bun.lock,避免双锁不同步。

bun run:脚本与直接执行

  1. 1

    跑 package.json scripts

    bun run dev 对应 npm run dev;bun run build、bun test 等同理。部分内置命令可省略 run(如 bun test),以当前 CLI 帮助为准。

  2. 2

    直接跑 TypeScript

    bun run src/index.ts 或文档中的 bun src/index.ts 形式,可在无单独 tsc 步骤下试通入口;生产构建仍可能用 bun build 或框架工具。

  3. 3

    环境变量与参数

    与 npm 类似,可在 scripts 里写 PORT=3000 bun run dev 或使用 .env(加载规则见 Bun 文档)。

# First hour · Bun · 2026-10-20
curl -fsSL https://bun.sh/install | bash   # confirm on bun.sh/docs
bun --version
mkdir my-app && cd my-app && bun init
bun add -d typescript
# package.json → "dev": "bun run src/index.ts"
bun run dev

Bun 与 npm / Node 对照

目标npm / Node 习惯Bun
装 CLI 工具npm i -g pkgbun add -g pkg(见文档)
加依赖npm install pkgbun add pkg
装全仓库npm ci / npm installbun install
跑脚本npm run devbun run dev
跑 TS 文件常需 ts-node / 先 tsc常可直接 bun run file.ts
01

命令找不到

重载 shell;检查 ~/.bun/bin 是否在 PATH;勿与损坏的旧安装并存。

02

依赖装失败

核对 Node 原生模块是否支持当前 Bun 版本;必要时该包仍用 Node LTS 跑。

03

CI 与本地不一致

提交 bun.lock;CI 固定 Bun 版本;文档写清 bun install 步骤。

建议路径:bun.sh 官方安装 → bun init 或 bun install → bun add → bun run dev。细节以 bun.sh/docs 与你本机 bun --help 为准。

和站内另一篇 Bun 文的区别
较早文章偏安装与 TypeScript 初跑;本篇强调 init / add / run scripts 与 npm 对照。
和 uv 的关系
uv 管 Python 项目;Bun 管 JS/TS。见 uv 对照。
不是 wbroom 功能说明
只讲 Bun CLI;远程白板会议见 wbroom。

还想核对的问题

Bun 能完全替代 Node 吗?

许多项目可以,但部分原生模块或框架仍要求特定 Node 版本。生产部署前用官方兼容说明与你的测试套件验证。

必须删掉 package-lock.json 吗?

长期用 Bun 应统一 lockfile 策略;迁移步骤见 bun.sh 文档,勿让 npm 与 Bun 各改各的锁文件。

bun add 和 bun install 区别?

bun add 添加/升级指定包并写 manifest;bun install 按现有 manifest 与 lock 装全量依赖。

第一个小时必须写测试吗?

不必。先 bun run dev 跑通一条 script;稳定后再加 bun test(若模板已带测试脚本)。

开始一场会议