mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 02:48:50 +00:00
Co-authored-by: Michael H <git@riskymh.dev> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Marko Vejnovic <marko@bun.com>
86 lines
2.3 KiB
Markdown
86 lines
2.3 KiB
Markdown
Scaffold an empty Bun project with the interactive `bun init` command.
|
||
|
||
```bash
|
||
$ bun init
|
||
|
||
? Select a project template - Press return to submit.
|
||
❯ Blank
|
||
React
|
||
Library
|
||
|
||
✓ Select a project template: Blank
|
||
|
||
+ .gitignore
|
||
+ index.ts
|
||
+ tsconfig.json (for editor autocomplete)
|
||
+ README.md
|
||
|
||
To get started, run:
|
||
|
||
bun run index.ts
|
||
|
||
bun install v$BUN_LATEST_VERSION
|
||
|
||
+ @types/bun@$BUN_LATEST_VERSION
|
||
+ typescript@5.9.2
|
||
|
||
7 packages installed
|
||
```
|
||
|
||
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.json` file with a name that defaults to the current directory name
|
||
- a `tsconfig.json` file or a `jsconfig.json` file, depending if the entry point is a TypeScript file or not
|
||
- an entry point which defaults to `index.ts` unless any of `index.{tsx, jsx, js, mts, mjs}` exist or the `package.json` specifies a `module` or `main` field
|
||
- a `README.md` file
|
||
|
||
AI Agent rules (disable with `$BUN_AGENT_RULE_DISABLED=1`):
|
||
|
||
- a `CLAUDE.md` file when Claude CLI is detected (disable with `CLAUDE_CODE_AGENT_RULE_DISABLED` env var)
|
||
- a `.cursor/rules/*.mdc` file to guide [Cursor AI](https://cursor.sh) 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:
|
||
|
||
```bash
|
||
$ bun init --react
|
||
```
|
||
|
||
The `--react` flag accepts the following values:
|
||
|
||
- `tailwind` - Scaffold a React project with Tailwind CSS
|
||
- `shadcn` - 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.
|
||
|
||
```bash
|
||
$ 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.
|
||
|
||
```bash
|
||
$ bun init --react=shadcn
|
||
```
|