到目前为止,我们只有一个 Angular 8 应用程序。但是现在我们必须创建一个新的管理应用程序,其 UI 将类似于现有应用程序(类似于登录组件、侧边栏、导航栏等中的类似 UI)。由于这两个应用程序将部署在两个不同的服务器上但彼此共享组件,因此我们决定将两个不同的源代码保存在一个具有共享组件库的 repo 下。
我们现有的应用程序是使用Jhipster生成的。
我发现以下两种方法对于维护两个不同的应用程序可能很有用。
我阅读了为 Angular 创建库的文章。但是,我找不到任何有关如何更改现有构建过程以构建两个不同应用程序的材料?我阅读的所有文章都有 Angular CLI 命令来构建不同的应用程序。由于我们已经将 webpack 作为捆绑器,我如何配置它来构建我的两个应用程序?基本上我所有的疑问都是关于如何扩展我们用来构建、测试和维护这两个不同应用程序的现有工具。
然后我阅读了有关 monorepo 模式的信息,并通过nrwl.io遇到了Nx。据我了解,它是 Angular CLI 之上的包装器,以支持 monorepo 模式,并附带维护这两个应用程序所需的所有工具。
所以我的问题是,当你只需要在两个应用程序之间共享代码时,monorepo 模式值得去吗?这是就开发的便利性与将现有应用程序转换为支持 monorepo 模式(设置工具,如Nx中的工具)所花费的时间而言,我读过这有点令人头疼。