团队规模上来之后,App Router 的目录约定变得越来越重要。分享一份我们用了一年的结构:
src/
app/ # 路由 + page,尽量薄
components/ # 通用 UI 组件
features/ # 按业务域分模块,每个域自带 server/client/actions
lib/ # 通用工具和数据访问层
server/ # 只在服务端跑的代码(db、auth)
几个硬约定:
app/下的 page 不写业务逻辑,只组装。- 数据访问统一走
lib/db/*.server.ts,文件名后缀卡边界。 - Server Actions 放
features/*/actions.ts。
这种结构在 5 人以下团队很好用,不知道人再多了会不会乱。大家的目录是怎么分的?