mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-11 16:26:08 +00:00
Source-grounded rewrite of 529 published docs pages with per-unit information-loss verification: 1,713 factual corrections cited to src/**, generated surfaces regenerated, frontmatter titles preserved for i18n, release notes pages untouched. All docs gates green. Closes #100141
60 lines
1.7 KiB
Markdown
60 lines
1.7 KiB
Markdown
---
|
|
summary: "Bun workflow (experimental): installs and gotchas vs pnpm"
|
|
read_when:
|
|
- You want the fastest local dev loop (bun + watch)
|
|
- You hit Bun install/patch/lifecycle script issues
|
|
title: "Bun (experimental)"
|
|
---
|
|
|
|
<Warning>
|
|
Bun is not recommended for gateway runtime (known issues with WhatsApp and Telegram). Use Node for production.
|
|
</Warning>
|
|
|
|
Bun is an optional local runtime for running TypeScript directly (`bun run ...`, `bun --watch ...`). The default package manager remains `pnpm`, which is fully supported and used by docs tooling. Bun cannot use `pnpm-lock.yaml` and ignores it.
|
|
|
|
## Install
|
|
|
|
<Steps>
|
|
<Step title="Install dependencies">
|
|
```sh
|
|
bun install
|
|
```
|
|
|
|
`bun.lock` / `bun.lockb` are gitignored, so there is no repo churn. To skip lockfile writes entirely:
|
|
|
|
```sh
|
|
bun install --no-save
|
|
```
|
|
|
|
</Step>
|
|
<Step title="Build and test">
|
|
```sh
|
|
bun run build
|
|
bun run vitest run
|
|
```
|
|
</Step>
|
|
</Steps>
|
|
|
|
## Lifecycle scripts
|
|
|
|
Bun blocks dependency lifecycle scripts unless explicitly trusted. For this repo, the commonly blocked scripts are not required:
|
|
|
|
- `baileys` `preinstall`: checks Node major >= 20 (OpenClaw requires Node 22.19+ or 23.11+, with Node 24 recommended)
|
|
- `protobufjs` `postinstall`: emits warnings about incompatible version schemes (no build artifacts)
|
|
|
|
If you hit a runtime issue that needs these scripts, trust them explicitly:
|
|
|
|
```sh
|
|
bun pm trust baileys protobufjs
|
|
```
|
|
|
|
## Caveats
|
|
|
|
Some package scripts hardcode `pnpm` internally (for example `check:docs`, `ui:*`, `protocol:check`). Running them via `bun run` still shells out to `pnpm`, so just run those via `pnpm` directly.
|
|
|
|
## Related
|
|
|
|
- [Install overview](/install)
|
|
- [Node.js](/install/node)
|
|
- [Updating](/install/updating)
|