跳到主要内容

Workspaces、Docker 与 CI

Bun 一旦进入团队项目,这三层通常很快就会出现:

  • workspaces
  • Docker
  • CI

这三层不顺,再快的本地体验也很难稳定落地。

Workspaces

官方文档说明,Bun 支持 package.json 里的 workspaces,也支持 glob 和 negative patterns。

一个常见根配置:

{
"name": "my-monorepo",
"private": true,
"workspaces": ["packages/*"]
}

官方 guide 里还特别提到,根 package.json 最好保持精简,具体依赖尽量各包自管。

workspace 依赖

{
"dependencies": {
"pkg-b": "workspace:*"
}
}

这类写法在 monorepo 里很常见。

Docker

官方也有专门的 Bun + Docker 指南。更常见的采用方式通常是:

  • 安装阶段用 Bun
  • 构建阶段用 Bun
  • 运行阶段再判断是否仍然保留 Node,还是直接用 Bun runtime

CI

官方文档推荐 GitHub Actions 使用:

  • oven-sh/setup-bun

一条常见链路:

- uses: oven-sh/setup-bun@v2
- run: bun install --frozen-lockfile
- run: bun run lint
- run: bun run test
- run: bun run build

参考来源