安装和配置 TanStack Start。

注意: 本指南适用于 TanStack Start 和 Tailwind v4。如果您使用的是 Tailwind v3,请考虑使用 Basic Starter 模板。TanStack Startshadcncanary 版本兼容。

TanStack Start + Tailwind v4

创建项目

首先,通过遵循 TanStack Start 网站上的 从零构建项目 指南来创建一个新的 TanStack Start 项目。

添加 Tailwind

安装 tailwindcss 及其依赖项。

pnpmnpmyarnbun

  1. pnpm add tailwindcss @tailwindcss/postcss postcss

创建 postcss.config.ts

在项目根目录下创建一个 postcss.config.ts 文件。

postcss.config.ts

  1. export default {
  2. plugins: {
  3. "@tailwindcss/postcss": {},
  4. },
  5. }

创建 app/styles/app.css

app/styles 目录下创建一个 app.css 文件,并导入 tailwindcss

app/styles/app.css

  1. @import "tailwindcss" source("../");

导入 app.css

app/routes/__root.tsx

  1. import type { ReactNode } from "react"
  2. import { Outlet, createRootRoute } from "@tanstack/react-router"
  3. import { Meta, Scripts } from "@tanstack/start"
  4. import appCss from "@/styles/app.css?url"
  5. export const Route = createRootRoute({
  6. head: () => ({
  7. meta: [
  8. {
  9. charSet: "utf-8",
  10. },
  11. {
  12. name: "viewport",
  13. content: "width=device-width, initial-scale=1",
  14. },
  15. {
  16. title: "TanStack Start Starter",
  17. },
  18. ],
  19. links: [
  20. {
  21. rel: "stylesheet",
  22. href: appCss,
  23. },
  24. ],
  25. }),
  26. component: RootComponent,
  27. })

编辑 tsconfig.json 文件

tsconfig.json 文件中添加以下代码来解析路径。

tsconfig.json

  1. {
  2. "compilerOptions": {
  3. "jsx": "react-jsx",
  4. "moduleResolution": "Bundler",
  5. "module": "ESNext",
  6. "target": "ES2022",
  7. "skipLibCheck": true,
  8. "strictNullChecks": true,
  9. "baseUrl": ".",
  10. "paths": {
  11. "@/*": ["./app/*"]
  12. }
  13. }
  14. }

运行 CLI

运行 shadcn 初始化命令来设置项目:

pnpmnpmyarnbun

  1. pnpm dlx shadcn@canary init -d

这将会在项目根目录创建一个 components.json 文件,并在 app/styles/app.css 中配置 CSS 变量。

就这样

现在,您可以开始向项目中添加组件。

pnpmnpmyarnbun

  1. pnpm dlx shadcn@canary add button

上述命令将会把 Button 组件添加到项目中。然后,您可以像这样导入它:

app/routes/index.tsx

  1. import { Button } from "@/components/ui/button"
  2. function Home() {
  3. const router = useRouter()
  4. const state = Route.useLoaderData()
  5. return (
  6. <div>
  7. <Button>Click me</Button>
  8. </div>
  9. )
  10. }

Basic Starter

Basic Starter 模板已经配置了 Tailwind v3。

运行 CLI

运行 shadcn 初始化命令来设置项目:

pnpmnpmyarnbun

  1. pnpm dlx shadcn@canary init -d

这将会在项目根目录创建一个 components.json 文件,并在 app/styles/app.css 中配置 CSS 变量。

就这样

现在,您可以开始向项目中添加组件。

pnpmnpmyarnbun

  1. pnpm dlx shadcn@canary add button

上述命令将会把 Button 组件添加到项目中。然后,您可以像这样导入它:

app/routes/index.tsx

  1. import { Button } from "@/components/ui/button"
  2. function Home() {
  3. const router = useRouter()
  4. const state = Route.useLoaderData()
  5. return (
  6. <div>
  7. <Button>Click me</Button>
  8. </div>
  9. )
  10. }