## Summary Updates documentation to include features released in Bun v1.2.17 that were missing from the docs: - ✅ HTML imports ahead-of-time bundling (already documented) - ✅ columnTypes & declaredTypes in bun:sqlite (already documented, just not visible in diff as it was recent) - ✅ bun info command (already documented) - ✅ Node.js compatibility improvements (partially documented, added missing details) - ✅ --unhandled-rejections flag (added) - ✅ CLAUDE.md generation in bun init (added) ## Changes - Document `--unhandled-rejections` CLI flag for configuring promise rejection handling - Document `CLAUDE.md` file generation in `bun init` when Claude CLI is detected - Update Node.js compatibility notes with recent improvements: - `child_process.fork()` execArgv support - Zstandard compression in `node:zlib` - Optional options parameter in `fs.glob` - `tls.getCACertificates()` implementation ## Test plan Documentation changes only - no code changes to test. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2.3 KiB
Scaffold an empty Bun project with the interactive bun init command.
$ bun init
bun init helps you get started with a minimal project and tries to
guess sensible defaults. Press ^C anytime to quit.
package name (quickstart):
entry point (index.ts):
Done! A package.json file was saved in the current directory.
+ index.ts
+ .gitignore
+ tsconfig.json (for editor auto-complete)
+ README.md
To get started, run:
bun run index.ts
Press enter to accept the default answer for each prompt, or pass the -y flag to auto-accept the defaults.
{% details summary="How bun init works" %}
bun init is a quick way to start a blank project with Bun. It guesses with sane defaults and is non-destructive when run multiple times.
It creates:
- a
package.jsonfile with a name that defaults to the current directory name - a
tsconfig.jsonfile or ajsconfig.jsonfile, depending if the entry point is a TypeScript file or not - an entry point which defaults to
index.tsunless any ofindex.{tsx, jsx, js, mts, mjs}exist or thepackage.jsonspecifies amoduleormainfield - a
README.mdfile
AI Agent rules (disable with $BUN_AGENT_RULE_DISABLED=1):
- a
CLAUDE.mdfile when Claude CLI is detected (disable withCLAUDE_CODE_AGENT_RULE_DISABLEDenv var) - a
.cursor/rules/*.mdcfile to guide Cursor AI to use Bun instead of Node.js and npm when Cursor is detected
If you pass -y or --yes, it will assume you want to continue without asking questions.
At the end, it runs bun install to install @types/bun.
{% /details %}
{% bunCLIUsage command="init" /%}
React
The --react flag will scaffold a React project:
$ bun init --react
The --react flag accepts the following values:
tailwind- Scaffold a React project with Tailwind CSSshadcn- Scaffold a React project with Shadcn/UI and Tailwind CSS
React + TailwindCSS
This will create a React project with Tailwind CSS configured with Bun's bundler and dev server.
$ bun init --react=tailwind
React + @shadcn/ui
This will create a React project with shadcn/ui and Tailwind CSS configured with Bun's bundler and dev server.
$ bun init --react=shadcn
