Monorepo Vue + Nestjs域和平台对象共享

问题描述

目标:

  • 使用monorepo结构,在该结构中,我可以跨不同的有界上下文共享域模型和通用实现(使用提供者模式)
  • 能够独立于其他有界上下文或客户端应用程序进行部署(因此,所有这些都不能放在一个src目录下的整体中。

背景:对我而言,典型的技术堆栈是Angular + .Net Core。我开始远离Angular,并且开始探索如果我使用nestjs开发API,那么代码共享的好处。

我正在尝试找出在客户端和API之间设置共享代码并遇到一些问题的最佳方法

我具有以下目录结构。我想找出共享domain/models/comestiblesapi/comestibles应用程序中web中的模型的最佳方法。我也可以将所有共享代码都放在packages文件夹中(正在查看Lerna)

enter image description here

我可以轻松地将代码api/comestibles指向目录,但这使dist文件夹结构不受欢迎,并且也弄乱了东西(例如Swagger)。我还从{p>更改了outDir中的tsconfig.json

"outDir": "./dist"

"outDir": "./dist/api/comestibles/src"

这确实破坏了应用程序中的其他内容,因为目录结构确实发生了变化。

我查看了设置Bit的过程,已经跟踪了一些文件,但是没有看到为这些文件创建的任何软件包。也许我虽然使用不正确。我也在为此寻找Lerna。鉴于这是我第一次通过脚本编写全栈应用程序,因此我不熟悉该解决方案的最佳体系结构。

解决方法

Nx.dev插件解决了我的问题。

https://github.com/ZachJW34/nx-plus/tree/master/libs/vue