Skip to content

docs(standards): Bun everywhere — commands, prerequisites, and a page of its own - #3

Open
dmitriyzhuk wants to merge 1 commit into
mainfrom
feat/bun-toolchain
Open

dmitriyzhuk wants to merge 1 commit into
mainfrom
feat/bun-toolchain

Conversation

@dmitriyzhuk

@dmitriyzhuk dmitriyzhuk commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

What

Every install and CLI line on the docs site now says Bun, and /standards/bun states the rule in one place.

Companion PRs (same change, other repos):

Why

The site said npm install on every setup page, npx on every CLI line, and two pages had wandered into pnpm. The projects these pages describe build with Bun — so the documentation described a setup nobody runs, and anyone following it ended up with a second lockfile.

Changed

  • 16 pages: bun install / bun add / bun add -d / bun run / bunx.
  • Getting Started prerequisites name Bun first; Node stays listed, because it is still the production runtime for the api.
  • New page /standards/bun (Standards sidebar) — command map, lockfile policy, migration recipe, and the two traps below.
  • The site's own tooling: bun.lock replaces package-lock.json.

The two traps, both learned the hard way

Docker: Bun installs, Node builds. oven/bun ships a shim named node, so nest build runs under Bun there and Nest's tsconfig-paths hook stops rewriting #slice aliases — the image builds clean and the api dies on boot with Cannot find module '#setup/prisma'. The page shows the working shape: a Node base with the Bun binary (and a bunx symlink) copied in.

Migrating a lockfile: run bun install while package-lock.json is still there so Bun carries the resolved versions over, and delete it afterwards. Deleting first re-resolves every range — in the MCP repo that pulled a zod major and broke the build.

Verified

bun install + bun run build — VitePress build passes, no dead links, new page renders in the Standards section.

🤖 Generated with Claude Code

… of its own

Every install line on the site said `npm install`, every CLI line said `npx`,
and two pages had wandered into `pnpm`. The projects these pages describe
build with Bun, so the site was teaching a setup nobody runs.

All of it now reads `bun install` / `bun add` / `bun run` / `bunx`, the
Getting Started prerequisites name Bun first, and `/standards/bun` states the
rule with the command map and the two traps: pre-scripts still run under Bun
(`predev` is load-bearing in CleanSlice), and a Docker build belongs in a NODE
image with the Bun binary copied in — `oven/bun` ships a `node` shim, under
which `nest build` stops rewriting `#slice` aliases and the api dies on boot.

The migration note is there for the same reason it cost time here: run
`bun install` while `package-lock.json` is still present so Bun carries the
resolved versions over, and only then delete it.

Verified with `bun install` and `bun run build` (VitePress build passes, no
dead links).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant