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

创建一个新的 TanStack Start 应用

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

启动开发服务器

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

更新 package.json 中的脚本

修改 package.json 中的 scripts 字段,在 Vite CLI 命令前添加 bun --bun 前缀,以确保 Bun 执行 Vite CLI 来处理常见任务,如 devbuildpreview
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 文件,加入 TanStack Start 和 Bun 需要的插件。
https://mintcdn.com/bun-zhcndoc/cnUTwgMuf4cCrwC-/icons/typescript.svg?fit=max&auto=format&n=cnUTwgMuf4cCrwC-&q=85&s=e7767043c9e885c34f2d6c8fe2a95217vite.config.ts
// 其他导入...
import { nitro } from "nitro/vite"; 

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

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

更新启动命令

确保你的 package.json 文件中包含 buildstart 脚本:
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/bun-zhcndoc/cnUTwgMuf4cCrwC-/icons/typescript.svg?fit=max&auto=format&n=cnUTwgMuf4cCrwC-&q=85&s=e7767043c9e885c34f2d6c8fe2a95217vite.config.ts
export default defineConfig({
  plugins: [
    tanstackStart(),
    nitro({
      preset: "bun", 
      vercel: { 
        functions: { 
          runtime: "bun1.x", 
        }, 
    }, 
    }),
  ],
});
https://mintcdn.com/bun-zhcndoc/cnUTwgMuf4cCrwC-/icons/ecosystem/vercel.svg?fit=max&auto=format&n=cnUTwgMuf4cCrwC-&q=85&s=e92543e72c0e2d1ee325c8c8cf295557

Vercel

在 Vercel 上部署
https://mintcdn.com/bun-zhcndoc/cnUTwgMuf4cCrwC-/icons/ecosystem/render.svg?fit=max&auto=format&n=cnUTwgMuf4cCrwC-&q=85&s=b0bb39432bfc1ee783888859611d9898

Render

在 Render 上部署
https://mintcdn.com/bun-zhcndoc/cnUTwgMuf4cCrwC-/icons/ecosystem/railway.svg?fit=max&auto=format&n=cnUTwgMuf4cCrwC-&q=85&s=6d4ced01059256dc15e14daaab430783

Railway

在 Railway 上部署
https://mintcdn.com/bun-zhcndoc/cnUTwgMuf4cCrwC-/icons/ecosystem/digitalocean.svg?fit=max&auto=format&n=cnUTwgMuf4cCrwC-&q=85&s=a1693d18e3518f25e10a2d3572d8a02d

DigitalOcean

在 DigitalOcean 上部署
https://mintcdn.com/bun-zhcndoc/cnUTwgMuf4cCrwC-/icons/ecosystem/aws.svg?fit=max&auto=format&n=cnUTwgMuf4cCrwC-&q=85&s=76b4d37ef79ff74ede5a0d58562736a5

AWS Lambda

在 AWS Lambda 上部署
https://mintcdn.com/bun-zhcndoc/7hwCkUCcx3ux5DPj/icons/ecosystem/gcp.svg?fit=max&auto=format&n=7hwCkUCcx3ux5DPj&q=85&s=717edc2f17132055927a2f48361ebb55

Google Cloud Run

在 Google Cloud Run 上部署

模板

bun-tanstack-todo

使用 Tanstack + Bun 的待办应用

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

Bun + TanStack Start 应用

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

基础 Bun + Tanstack 启动器

基础的 TanStack 启动模板,使用 Bun 运行时和 Bun 的文件 APIs。

→ 查看 TanStack Start 官方文档 获取更多关于部署托管的信息。