所以我在这里想做的是解释我们的应用程序的需求,并描述到目前为止我提出的实现。希望获得有关如何更好地实施的建议。
我们有一个白色标签或核心产品/应用程序。然后,我们有多个使用该应用程序的客户端,但是具有各自的主题和配置。
随着我们正在开发的新版本,我们想要构建我所说的配置管理器。配置管理器将包含有关客户端的许多详细信息,包括: -客户端特定的配置(打开/关闭部分等) -翻译字符串(在客户端的应用程序上更改文本) -主题配置(更改网站颜色的功能,SASS配置) -内容配置(连接到文章/菜单/等外部无头CMS)
要记住的一件事是,对于每个客户,我们当然都有多个环境,包括dev
,staging
,UAT
和production
。
理想情况下,配置管理器将是我们可以管理客户端的所有配置,甚至跨环境同步这些配置的地方。这是可能发生的情况的示例:
在谈到配置管理器时,我的第一个真正的问题是,是否有人知道可以用于这些目的的工具。从本质上讲,它需要将JSON数据存储在数据库中。
下一个真正的问题是主应用程序实际上将如何获取此数据。一种明显的方法是从主应用程序到配置管理器的端点,以获取站点配置,翻译,内容(文章和菜单)等。在这种情况下,我们显然希望实现某种缓存,因为没有理由在每次页面加载时都抓取菜单,特别是考虑到菜单不会经常更改(其他配置也不会更改)。
但是,我认为会更好的是,如果主应用程序的构建过程在构建时将所有配置(来自配置管理器)考虑在内。我们在构建过程中使用gulp
,因此,我们可以在配置管理器中命中相同的端点,以获取构建主应用程序所需的所有那些配置。
应用程序还有其他部分,但是我不太担心这些部分的工作方式。这些包括: -从主应用程序连接到API以获取数据 -主应用程序的每个实例都有一个随附的设计系统应用程序
我还要说,目前,我们计划使用next.js
构建主应用程序,并使用nuxt.js
构建配置管理器。