应用架构速览
本文只讲 应用层 怎么拼起来,不画全仓包图谱。
目录与职责(示意)
apps/nextkity/
├── src/app/[locale]/… # App Router 页面与布局
├── src/config/ # 如 admin-layout-config
├── src/i18n/ # routing、request、FEATURE_MODULES
├── content/ # docs / blog / help / legal 等(demo 侧副本)
├── prisma/ # 本 app 合并后的 schema 与迁移
└── .env / .env.example
业务 UI / 服务大多来自 packages/ 下的 @nextkity/*;app 负责:
- 挂路由与 layout
- 声明加载哪些 feature 文案(
FEATURE_MODULES) - 注入品牌、菜单、环境变量
路由与 locale
- 用户可见路径在
src/app/[locale]/…下 - 路由 locale:
zh/en/ja(默认zh,见src/i18n/routing.ts) - 示例:Admin →
/zh/admin,文档站 →/zh/docs
FEATURE_MODULES
src/i18n/request.ts 中的 FEATURE_MODULES 列出要合并进 next-intl 的 feature 文案包(如 admin、orders、auth-ui)。
- 加减模块会影响对应 UI 是否有翻译、以及构建时 locale 收集范围
- 只写「包存在且需要在本 app 展示」的名字,避免指向不存在的路径
更细的配置说明见后续「Configuration / feature-modules」章节(待补)。
Layout 与 Admin 壳
- Admin 布局配置:
src/config/admin-layout-config.ts - 完整 demo 使用
buildAdminMenuConfig({ includeArticles: true }),侧栏含文章管理等全量菜单 - 顶栏可接
LanguageSwitcher(通过headerConfig.navigation)
门户 / Console 另有各自 layout 配置,改品牌时优先找 src/config/。
Feature 包边界(二次开发直觉)
| 你想改… | 常见落点 |
|---|---|
| 某一屏文案 | 对应 feature 的 locales/{zh,en,ja}.json,或 app messages |
| Admin 某一页逻辑 | 共享页多在 @nextkity/admin 或域包;app 路由常为薄 re-export |
| 菜单结构 | @nextkity/layout 的 buildAdminMenuConfig + app 的 admin layout config |
| HTTP API | 各 feature 的 api/ + app 的 Route Handler 挂载方式 |