项目结构
MkSaaS 模板文件和文件夹组织概述
MkSaaS 遵循基于 Next.js App Router 的模块化架构,专注于可扩展性和可维护性。本文档解释了模板中的关键目录和文件,帮助您更有效地导航代码库。
根目录结构
middleware.ts
routes.ts
drizzle.config.ts
next.config.ts
source.config.ts
关键文件
src/middleware.ts
:包含路由保护逻辑和重定向src/routes.ts
:定义应用程序路由以实现一致的导航drizzle.config.ts
:数据库的 Drizzle ORM 配置next.config.ts
:Next.js 配置,包括重定向和重写source.config.ts
:文档的 Fumadocs 配置Dockerfile
:Dockerfile 配置env.example
:环境变量模板
关键目录
/src/app
目录
app 目录遵循 Next.js App Router 约定:
layout.tsx
not-found.tsx
robots.ts
sitemap.ts
manifest.ts
/src/actions
目录
按功能组织的 Server Action,由 next-safe-action 提供支持,用于类型安全的 Server Action:
check-newsletter-status.ts
create-checkout-session.ts
create-customer-portal-session.ts
get-active-subscription.ts
get-lifetime-status.ts
send-message.ts
subscribe-newsletter.ts
unsubscribe-newsletter.ts
/src/lib
目录
核心应用程序逻辑和实用程序:
auth.ts
auth-client.ts
source.ts
metadata.ts
constants.ts
formatter.ts
utils.ts
/src/components
目录
组件按功能和用途组织,以便更好地维护:
代码组织最佳实践
在使用 MkSaaS 时,请遵循这些代码组织最佳实践:
按功能分组,而不是按类型
将相关文件保持在一起,无论其类型如何。
保持组件专注和小巧
每个组件应该有单一职责。
巧妙使用统一导出
创建 index.ts
文件从目录重新导出组件,使导入更清洁。
// components/ui/index.ts
export * from './Button';
export * from './Card';
export * from './Input';
// 使用
import { Button, Card, Input } from '@/components/ui';
清楚地分离客户端和服务器组件
在客户端组件顶部使用 'use client'
指令,并将服务器组件保持为默认。
视频教程
下一步
现在您了解了项目结构,探索这些相关主题: