1

我刚开始使用nx.dev从单个应用程序存储库迁移到单存储库,因为我已将一个非常基本的静态文档应用程序添加到部署到子域的混合中docs.company.com

我的主要应用程序当前部署到 main route company.com。但是,可以将其视为不同的应用程序以及存在的应用程序app1,例如。我确实喜欢将所有东西都作为单个应用程序的想法,因为它可以通过 nx 和 Vercels monorepo 支持轻松部署。app2admin

我只是不确定这里的方法是什么。当然,我可以将主应用程序拆分为多个应用程序,并将它们独立部署到子域,例如:

  • admin.company.com
  • app1.company.com
  • app2.company.com

如果理解正确,如果我不喜欢子域并使用一个域,我也可以使用多区域支持。

这个在逻辑上可以拆分为多个应用程序的主应用程序是非公开的,并且需要身份验证。它完全是客户端渲染,而 apollo 客户端用于与 GraphQL API 交互。此 API 服务器还设置http-onlyJWT cookie 用于身份验证。我很确定我可以通过设置域 cookie 设置来缓解子域在这方面的问题,这样 cookie 对子域也有效。

但是,由于 cookie 是http-only我无法从客户端访问它,并且需要在我的全局状态管理(即 overmind.js)中跟踪登录状态。拆分应用程序会增加一些额外的复杂性来保持子域应用程序之间的全局状态。

我不确定这是否值得,或者坚持使用单一应用程序是否更好。我很想听听您的意见,也许我忘记了一些主要问题。我想到的一些问题:

  • 使用子域的优缺点是什么?
  • 使用多个区域并且只使用一个应用程序更可取吗?
  • 如果切换到多个应用程序,如何解决身份验证/全局状态问题?

你觉得呢?你有没有什么想法?

4

0 回答 0