我们目前有一个独立的 monorepo 项目,我们希望将应用程序模块化为单独的模块,这些模块可以单独使用并独立部署。我们正在使用 Nx 和...
我们目前有一个独立的 monorepo 项目,我们希望将应用程序模块化为单独的模块,这些模块可以单独使用并独立部署。我们正在使用 Nx,并旨在利用其功能以及模块联合来实现这一点。我的想法是在保留 monorepo 的同时创建微前端,但我的团队坚持认为我们需要为不同的模块和库设置不同的存储库,因为他们认为没有办法将它们单独部署,同时将它们保留在一个存储库中。
我读过一些文章,建议使用 Nx 受影响来处理这个问题,但我想听听你关于如何在维护 monorepo 的同时解决这个问题的建议。具体来说,如果我们将更改合并到开发分支,我们如何确保只部署模块 2 而不是模块 1?一个示例部署 YAML 文件、一篇文章或一个现有项目设置将非常有帮助。
您是否考虑过在 monorepo 中使用 polyrepo?关键是使用 git 子模块。例如,一个 Angular 应用程序可以是位于 monorepo 内部的 git 子模块,monorepo 被推送到触发管道的分支中(使用 git submodule foreach 进行拉取更改),管道使用 nx impacted 来发布库,并且应用程序模块应该被推送到另一个分支中,从而为每个应用程序触发另一个管道。可以提供帮助的工具是:\'@manypkg/cli\'、\'@semantic-release/*\' 一个 repo 的基本示例:
你好 @OscarLudick 谢谢你的回答,你实际上触及了我很好奇的一点,这与完全不同的 repos 有何不同,对我来说,重要的是这些可以单独处理和部署的模块仍然共享相同的版本,因此是 monorepo,子模块对此有何影响?
与完全不同的 repos 之间的最大区别在于,即使您的 repos 是分开的,您也可以共享 nx 和工具功能,诸如配置(prettier、semantic release、husky、node_modules)之类的东西都在一个工作区中,但它们是分开部署的(排除不必要的代码、提高 ci/cd 性能、为应用程序/库标记版本),并且 monorepo 充当版本控制的主要存储库,更新每个子模块的引用。也许这不是你想要的,但我希望它能给你一些关于你想要实现的方法的想法。
我们正在使用具有微前端架构的 NX monorepo。我们可以从中部署 4 个不同的应用程序。一个结合了所有 FE(A、B、C、D)并且经过身份验证,一个提供无需身份验证的 A 和 B,一个提供无需身份验证的独立 C 和经过身份验证的独立 D。这是一个快速配置的问题
我在处理 MEAN 堆栈应用程序中的大量数据时遇到了技术问题。为了避免重复调用 API,我实现了本地存储来缓存数据。如果相同的...
我在处理 MEAN 堆栈应用程序中的大量数据时遇到了技术问题。为了避免重复调用 API,我实现了本地存储来缓存数据。如果再次需要相同的数据,则从本地存储中检索数据,而不是调用 API。但是,当数据库中的数据更新时,就会出现问题。由于应用程序从本地存储中检索数据,因此它不会反映数据库中更新的数据。我该如何有效地处理这种情况?
我希望有人能解决这个问题!!