---
url: 'https://elysiajs.com/integrations/nuxt.md'
---
# 与 Nuxt 集成
我们可以使用 Nuxt 的社区插件 [nuxt-elysia](https://github.com/tkesgar/nuxt-elysia),利用 Eden Treaty 在 Nuxt API 路由上配置 Elysia。
1. 通过以下命令安装插件:
```bash
bun add elysia @elysiajs/eden
bun add -d nuxt-elysia
```
2. 在你的 Nuxt 配置中添加 `nuxt-elysia`:
```ts
export default defineNuxtConfig({
modules: [ // [!code ++]
'nuxt-elysia' // [!code ++]
], // [!code ++]
nitro: { // [!code ++]
preset: 'Bun' // [!code ++]
} // [!code ++]
})
```
::: tip
`nitro.preset: 'Bun'` 配置是必需的,因为 Elysia 运行在 Bun 运行时。这告诉 Nuxt 的 Nitro 使用 Bun 作为服务器运行时,而非默认的 Node.js 运行时。
:::
3. 在项目根目录创建 `api.ts`:
```typescript [api.ts]
export default () => new Elysia() // [!code ++]
.get('/hello', () => ({ message: 'Hello world!' })) // [!code ++]
```
4. 在你的 Nuxt 应用中使用 Eden Treaty:
```vue
```
这将自动在 Nuxt API 路由上配置并运行 Elysia。
### pnpm
如果你使用 pnpm,[pnpm 默认不自动安装 peer 依赖](https://github.com/orgs/pnpm/discussions/3995#discussioncomment-1893230),你需要手动安装额外依赖。
```bash
pnpm add @sinclair/typebox openapi-types
```
## 前缀
默认情况下,Elysia 将挂载在 **/\_api**,但我们可以通过 `nuxt-elysia` 配置进行自定义。
```ts
export default defineNuxtConfig({
nuxtElysia: {
path: '/api' // [!code ++]
}
})
```
这会将 Elysia 挂载到 **/api**,而非 **/\_api**。
更多配置请参考 [nuxt-elysia](https://github.com/tkesgar/nuxt-elysia)