Jump to content

文件夹结构

请选择你要安装的依赖包来查看一个对应新建的 T3 App 的文件夹结构。继续往下阅读,你可以从每个文件夹的描述了解它们对应的用途。

  

prisma

文件夹 prisma 包含了 schema.prisma 文件,它被用于配置数据库连接和定义数据结构。数据库的迁移记录文件以及初始化种子脚本(如果你需要的话)也会被放在这个文件夹里。 参看 Prisma 的用法 来了解更多。

public

文件夹 public 包含了一些将被托管在服务器上的静态资源。例如文件 favicon.ico

src/env

用于环境变量的验证和类型定义 - 参看 环境变量

src/pages

文件夹 pages 包含了 Next.js 应用的所有页面。根目录下的文件 index.tsx 则是应用程序的首页。文件 _app.tsx 被用于使用 provider 来包裹整个应用程序。参看 Next.js 文档 来了解更多。

src/pages/api

文件夹 api 包含了 Next.js 应用的所有 API 路由。参看 Next.js API 路由 来获取有关 API 路由的信息。

src/pages/api/auth/[...nextauth].ts

文件 [...nextauth].ts 包含了 NextAuth.js 认证的动态 slug 路由。它被用于处理认证请求。参看 NextAuth.js 用法 来了解更多关于 NextAuth.js 的用法,以及 Next.js 动态路由文档 来了解更多关于 catch-all 和 slug 路由的信息。

src/pages/api/trpc/[trpc].ts

文件 [trpc].ts 是 tRPC API 的入口。它被用于处理 tRPC 请求。参看 tRPC 用法 来了解更多关于这个文件的信息,以及 Next.js 动态路由文档 来了解更多关于 catch-all 和 slug 路由的信息。

src/server

文件夹 server 被用于清晰划分服务端和客户端代码。

src/server/auth.ts

服务器端认证逻辑的主入口。在这里,我们设置 NextAuth.js 的 配置选项,执行 模块扩展,并提供一些认证的 DX 工具,例如在服务器端检索用户的会话。参看 NextAuth.js 用法 来了解更多。

src/server/db.ts

文件 db.ts 被用于初始化一个全局的 Prisma 客户端。 参看 Prisma 用法使用 Prisma 与 Next.js 的最佳实践 来了解更多。

src/server/api

文件夹 api 包含了 tRPC 服务端的代码。

src/server/api/routers

文件夹 routers 包含了你的所有 tRPC 子路由。

src/server/api/routers/example.ts

文件 example.ts 包含了一段 tRPC 路由的示例代码,它利用 publicProcedure 来展示如何创建一个公开不受保护的 tRPC 路由。

根据你选择的包,这个路由包含更多或更少的路由,以最好地展示符合你需求的用法。

src/server/api/trpc.ts

文件 trpc.ts 是 tRPC 后端的主要配置文件。我们在这里进行以下操作:

  1. 定义在 tRPC 请求中使用的上下文。 参看 tRPC 用法 来了解更多。
  2. 导出 procedure。 参看 tRPC 用法 来了解更多。

src/server/api/root.ts

root.ts 文件用于合并 tRPC 子路由并将它们导出为一个单一的路由,同时也导出了路由的类型定义。详见 tRPC 用法。

文件 root.ts 被用于合并 tRPC 子路由并将它们导出为一个单一的路由,同时也导出了路由的类型定义。参看 tRPC 用法 来了解更多。

src/styles

文件夹 styles 包含了应用的全局样式。

src/utils

文件夹 utils 被用于存储经常复用的工具函数。

src/utils/api.ts

文件 trpc.ts 是 tRPC 的前端入口。参看 tRPC 用法 来了解更多。

.env

文件 .env 被用于保存环境变量。参看 环境变量 来了解更多。该文件应该被提交到 git 历史记录里。

.env.example

文件 .env.example 根据所选库包展示了一个环境变量示例配置。这个文件需要被提交到 git 历史记录里。

.eslintrc.cjs

文件 .eslintrc.cjs 被用于配置 ESLint。参看 ESLint 文档 来了解更多。

next-env.d.ts

文件 next-env.d.ts 确保 TypeScript 编译器能够采用 Next.js 的类型。你不应该移除或修改该文件,因为它可以随时发生变化。 参看 Next.js 文档 来了解更多。

next.config.mjs

文件 next.config.mjs 被用于配置 Next.js。参看 Next.js 文档 来了解更多。注意:.mjs 格式的文件被用于允许以 ESM 方式导入。

postcss.config.cjs

文件 postcss.config.cjs 被用于配置 Tailwind PostCSS 的用法。参看 Tailwind PostCSS 文档 来了解更多。

prettier.config.mjs

文件 prettier.config.mjs 被用于配置 Prettier,以使用插件 prettier-plugin-tailwindcss 来格式化 Tailwind CSS 的类名。参看 Tailwind CSS 博客 来了解更多。

tsconfig.json

文件 tsconfig.json 被用于配置 TypeScript。一些非默认项,例如 strict mode 已经被启用来保证使用 Create T3 App 和它所含库时能获得最佳的 TypeScript 开发体验。参看 TypeScript 文档TypeScript 用法 来了解更多。

drizzle.config.ts

文件 drizzle.config.ts 被文件用于配置 drizzle kit。更多信息请参看 文档