mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 18:38:55 +00:00
32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
To create a new React app:
|
||
|
||
```bash
|
||
$ bun create react ./app
|
||
$ cd app
|
||
$ bun dev # start dev server
|
||
```
|
||
|
||
To use an existing React app:
|
||
|
||
```bash
|
||
$ bun add -d react-refresh # install React Fast Refresh
|
||
$ bun bun ./src/index.js # generate a bundle for your entry point(s)
|
||
$ bun dev # start the dev server
|
||
```
|
||
|
||
From there, Bun relies on the filesystem for mapping dev server paths to source files. All URL paths are relative to the project root (where `package.json` is located).
|
||
|
||
Here are examples of routing source code file paths:
|
||
|
||
| Dev Server URL | File Path (relative to cwd) |
|
||
| -------------------------- | --------------------------- |
|
||
| /src/components/Button.tsx | src/components/Button.tsx |
|
||
| /src/index.tsx | src/index.tsx |
|
||
| /pages/index.js | pages/index.js |
|
||
|
||
You do not need to include file extensions in `import` paths. CommonJS-style import paths without the file extension work.
|
||
|
||
You can override the public directory by passing `--public-dir="path-to-folder"`.
|
||
|
||
If no directory is specified and `./public/` doesn’t exist, Bun will try `./static/`. If `./static/` does not exist, but won’t serve from a public directory. If you pass `--public-dir=./` Bun will serve from the current directory, but it will check the current directory last instead of first.
|