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