Skip to main content
TanStack Start 是一个由 TanStack Router 驱动的全栈框架。它支持全文档 SSR、流式传输、服务器函数、打包等功能,由 TanStack Router 和 Vite 驱动。
1

创建一个新的 TanStack Start 应用

使用交互式 CLI 创建一个新的 TanStack Start 应用。
terminal
bun create @tanstack/start@latest my-tanstack-app
2

启动开发服务器

更改到项目目录并使用 Bun 运行开发服务器。
terminal
cd my-tanstack-app
bun --bun run dev
这将使用 Bun 启动 Vite 开发服务器。
3

更新 package.json 中的脚本

通过在 Vite CLI 命令前缀加上 bun --bun 来修改 package.json 中的脚本字段。这确保了 Bun 为常见任务如 devbuildpreview 执行 Vite CLI。
package.json
{
  "scripts": {
    "dev": "bun --bun vite dev", 
    "build": "bun --bun vite build", 
    "serve": "bun --bun vite preview"
  }
}

托管

要托管您的 TanStack Start 应用,您可以使用 Nitro 或自定义 Bun 服务器进行生产部署。
1

向项目添加 Nitro

向您的项目添加 Nitro。这个工具允许您将 TanStack Start 应用部署到不同的平台。
terminal
bun add nitro
2
更新您的 [vite.config.ts] 文件以包含 Bun 的 TanStack Start 所需的必要插件。
https://mintcdn.com/teemo/2s-4Z6VdGqiCeBNX/icons/typescript.svg?fit=max&auto=format&n=2s-4Z6VdGqiCeBNX&q=85&s=087b260066909db1cd3e9c7292bc34b2vite.config.ts
// 其他导入...
import { nitro } from "nitro/vite"; 

const config = defineConfig({
  plugins: [
    tanstackStart(),
    nitro({ preset: "bun" }), 
    // 其他插件...
  ],
});

export default config;
bun 预设是可选的,但它配置了专门针对 Bun 运行时的构建输出。
3

更新启动命令

确保 buildstart 脚本存在于您的 [package.json] 文件中:
package.json
  {
    "scripts": {
      "build": "bun --bun vite build", 
      // 当您运行 `bun run build` 时,Nitro 会创建 .output 文件。
      // 部署到 Vercel 时不需要。
      "start": "bun run .output/server/index.mjs"
    }
  }
在部署到 Vercel 时,您不需要自定义 start 脚本。
4

部署您的应用

查看我们的指南之一,将您的应用部署到托管提供商。
部署到 Vercel 时,您可以在 vercel.json 文件中添加 "bunVersion": "1.x",或将其添加到 [vite.config.ts] 文件中的 nitro 配置中:
部署到 Vercel 时不要使用 bun Nitro 预设。
https://mintcdn.com/teemo/2s-4Z6VdGqiCeBNX/icons/typescript.svg?fit=max&auto=format&n=2s-4Z6VdGqiCeBNX&q=85&s=087b260066909db1cd3e9c7292bc34b2vite.config.ts
export default defineConfig({
  plugins: [
    tanstackStart(),
    nitro({
      preset: "bun", 
      vercel: { 
        functions: { 
          runtime: "bun1.x", 
        }, 
    }, 
    }),
  ],
});
https://mintcdn.com/teemo/2s-4Z6VdGqiCeBNX/icons/ecosystem/vercel.svg?fit=max&auto=format&n=2s-4Z6VdGqiCeBNX&q=85&s=745b91360c2b5068054738595133d410

Vercel

部署到 Vercel
https://mintcdn.com/teemo/2s-4Z6VdGqiCeBNX/icons/ecosystem/render.svg?fit=max&auto=format&n=2s-4Z6VdGqiCeBNX&q=85&s=b94407f0778c556e899349705d663b4b

Render

部署到 Render
https://mintcdn.com/teemo/2s-4Z6VdGqiCeBNX/icons/ecosystem/railway.svg?fit=max&auto=format&n=2s-4Z6VdGqiCeBNX&q=85&s=9fc30f9146571c8e205e6dbe3b79f194

Railway

部署到 Railway
https://mintcdn.com/teemo/2s-4Z6VdGqiCeBNX/icons/ecosystem/digitalocean.svg?fit=max&auto=format&n=2s-4Z6VdGqiCeBNX&q=85&s=dd61259e05c9c6ba0c06d18939346493

DigitalOcean

部署到 DigitalOcean
https://mintcdn.com/teemo/2s-4Z6VdGqiCeBNX/icons/ecosystem/aws.svg?fit=max&auto=format&n=2s-4Z6VdGqiCeBNX&q=85&s=cd83073a273d2903d16c079ee0aab63d

AWS Lambda

部署到 AWS Lambda
https://mintcdn.com/teemo/2s-4Z6VdGqiCeBNX/icons/ecosystem/gcp.svg?fit=max&auto=format&n=2s-4Z6VdGqiCeBNX&q=85&s=87a6808b54bf31529b36c7adb92572af

Google Cloud Run

部署到 Google Cloud Run

模板

bun-tanstack-todo

使用 Tanstack + Bun 的待办应用

一个使用 Bun、TanStack Start 和 PostgreSQL 构建的待办应用。
bun-tanstack-basic

Bun + TanStack Start 应用

一个使用 Bun 的 TanStack Start 模板,支持 SSR 和基于文件的路由。
bun-tanstack-start

基本 Bun + Tanstack 启动器

使用 Bun 运行时和 Bun 文件 API 的基本 TanStack 启动器。

→ 查看 TanStack Start 的官方文档 了解有关托管的更多信息。