NxWorkspace 应用于具有多个 Angular 客户端的现有 .Net Core API

NxWorkspace applied to existing .Net Core API with Multiple Angular Clients

我正在研究 NxWorkspace 及其在现有 .Net Core 解决方案中的实现,我们有多个 Angular 应用程序可以从 NxWorkspace 中受益。我了解在创建没有 .Net Core 的新存储库时这将如何工作 API,但我很难想象 NxWorkspace 对我们现有存储库的实现。

我想弄清楚的是将 Nx 与 .Net Core(或非 JS 技术)结合使用时的最佳实践? Nx 是否必须位于根目录中,或者如果它位于下一级文件夹中是否重要?我已经完成了 NxWorkspace 视频讲座,所以我了解 Nx 的实用性,但在如何将其应用于我们现有的存储库,或者它是否应该与它的好处相提并论方面还不够。例如:

之前

根目录中的当前文件夹结构省略了 OpenShift、Docker 和管道工件:

/dotnet-webapi
/client1-angular
/client2-angular
/client3-react

之后

/client-workspace 中带有 NxWorkspace 的新文件夹结构:

/dotnet-webapi
/client-workspace (NxWorkspace)
  /apps
    /client1-angular
    /client2-angular
    /client3-angular
  /libs
  /tools

相对

根目录中的 NxWorkspace,尽管它根本不会使 .Net Core API 受益,而且感觉它正在将 API 埋在 JS 生态系统中:

/apps
  /dotnet-webapi
  /client1-angular
  /client2-angular
  /client3-angular
/libs
/tools

我们在工作中为我们的 angular 应用程序利用了几个内部 .NET 核心 API,但目前我们的 monorepo 仅包含 Angular 应用程序。我们确实感受到了这些带来的好处,并希望最终将其扩展以容纳 .NET API。

后两个版本中的任何一个都应该可以正常工作。就个人而言,我们正在推迟将 .NET 项目添加到 monorepo 中,直到为 .NET 出现类似于 Nx Community GO 插件的好插件。创建该插件后,我们将采用类似于您的第二个版本的策略,其中 api 位于应用程序目录下。

虽然您说得对,目前它不会从中受益,但只要创建了一个好的 .NET 插件,您就可以将它添加到 workspace/nx.json 并开始获取一些好处。这些好处将包括计算缓存,build:afffected 等等,尽管无法从应用程序堆栈的打字稿部分引用它们。