应用架构速览

本文只讲 应用层 怎么拼起来,不画全仓包图谱。

目录与职责(示意)

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 负责:

  1. 挂路由与 layout
  2. 声明加载哪些 feature 文案(FEATURE_MODULES
  3. 注入品牌、菜单、环境变量

路由与 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 文案包(如 adminordersauth-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/layoutbuildAdminMenuConfig + app 的 admin layout config
HTTP API各 feature 的 api/ + app 的 Route Handler 挂载方式

下一步