mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-24 16:32:29 +00:00
56 lines
1.6 KiB
Markdown
56 lines
1.6 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)"
|
|
---
|
|
|
|
# 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 will ignore 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:
|
|
|
|
- `@whiskeysockets/baileys` `preinstall` -- checks Node major >= 20 (OpenClaw defaults to Node 24 and still supports Node 22 LTS, currently `22.16+`)
|
|
- `protobufjs` `postinstall` -- emits warnings about incompatible version schemes (no build artifacts)
|
|
|
|
If you hit a runtime issue that requires these scripts, trust them explicitly:
|
|
|
|
```sh
|
|
bun pm trust @whiskeysockets/baileys protobufjs
|
|
```
|
|
|
|
## Caveats
|
|
|
|
Some scripts still hardcode pnpm (for example `docs:build`, `ui:*`, `protocol:check`). Run those via pnpm for now.
|