mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
This PR addresses several issues opened for the docs: - Add callout for SQLite caching behavior between prepare() and query() - Fix SQLite types and fix deprecated exec to run - Fix Secrets API example - Update SolidStart guide - Add bun upgrade guide - Prefer `process.versions.bun` over `typeof Bun` for detection - Document complete `bunx` flags - Improve Nitro preset documentation for Nuxt Fixes #23165, #24424, #24294, #25175, #18433, #16804, #22967, #22527, #10560, #14744
97 lines
2.6 KiB
Plaintext
97 lines
2.6 KiB
Plaintext
---
|
||
title: Build an app with Nuxt and Bun
|
||
sidebarTitle: Nuxt with Bun
|
||
mode: center
|
||
---
|
||
|
||
Bun supports [Nuxt](https://nuxt.com) out of the box. Initialize a Nuxt app with official `nuxi` CLI.
|
||
|
||
```sh terminal icon="terminal"
|
||
bunx nuxi init my-nuxt-app
|
||
```
|
||
|
||
```txt
|
||
✔ Which package manager would you like to use?
|
||
bun
|
||
◐ Installing dependencies...
|
||
bun install v1.3.3 (16b4bf34)
|
||
+ @nuxt/devtools@0.8.2
|
||
+ nuxt@3.7.0
|
||
785 packages installed [2.67s]
|
||
✔ Installation completed.
|
||
✔ Types generated in .nuxt
|
||
✨ Nuxt project has been created with the v3 template. Next steps:
|
||
› cd my-nuxt-app
|
||
› Start development server with bun run dev
|
||
```
|
||
|
||
---
|
||
|
||
To start the dev server, run `bun --bun run dev` from the project root. This will execute the `nuxt dev` command (as defined in the `"dev"` script in `package.json`).
|
||
|
||
<Note>
|
||
The `nuxt` CLI uses Node.js by default; passing the `--bun` flag forces the dev server to use the Bun runtime instead.
|
||
</Note>
|
||
|
||
```sh terminal icon="terminal"
|
||
cd my-nuxt-app
|
||
bun --bun run dev
|
||
```
|
||
|
||
```txt
|
||
nuxt dev
|
||
Nuxi 3.6.5
|
||
Nuxt 3.6.5 with Nitro 2.5.2
|
||
> Local: http://localhost:3000/
|
||
> Network: http://192.168.0.21:3000/
|
||
> Network: http://[fd8a:d31d:481c:4883:1c64:3d90:9f83:d8a2]:3000/
|
||
|
||
✔ Nuxt DevTools is enabled v0.8.0 (experimental)
|
||
ℹ Vite client warmed up in 547ms
|
||
✔ Nitro built in 244 ms
|
||
```
|
||
|
||
---
|
||
|
||
Once the dev server spins up, open [http://localhost:3000](http://localhost:3000) to see the app. The app will render Nuxt's built-in `NuxtWelcome` template component.
|
||
|
||
To start developing your app, replace `<NuxtWelcome />` in `app.vue` with your own UI.
|
||
|
||
<Frame>
|
||

|
||
</Frame>
|
||
|
||
---
|
||
|
||
For production build, while the default preset is already compatible with Bun, you can also use [Bun preset](https://nitro.build/deploy/runtimes/bun) to generate better optimized builds.
|
||
|
||
```ts nuxt.config.ts icon="/icons/typescript.svg"
|
||
export default defineNuxtConfig({
|
||
nitro: {
|
||
preset: "bun", // [!code ++]
|
||
},
|
||
});
|
||
```
|
||
|
||
Alternatively, you can set the preset via environment variable:
|
||
|
||
```sh terminal icon="terminal"
|
||
NITRO_PRESET=bun bun run build
|
||
```
|
||
|
||
<Note>
|
||
Some packages provide Bun-specific exports that Nitro will not bundle correctly using the default preset. In this
|
||
case, you need to use Bun preset so that the packages will work correctly in production builds.
|
||
</Note>
|
||
|
||
After building with bun, run:
|
||
|
||
```sh terminal icon="terminal"
|
||
bun run ./.output/server/index.mjs
|
||
```
|
||
|
||
---
|
||
|
||
Refer to the [Nuxt website](https://nuxt.com/docs) for complete documentation.
|