nestjs - 如何构建 NestJS monorepo 并使用相关资产构建应用程序?
问题描述
情况
我正在构建一组基于NestJS monorepo的应用程序。
我有几个apps
依赖于几个共享libs
的。
apps
它们彼此相似,但在某些功能上可能仍然不同,因此 monorepo 完全有意义。
一些libs
提供@Controller()
,哪些@Render()
视图用于常见功能。
构想
模板文件应该存在于模块中。由于控制器和渲染模板之间存在高度耦合,因此我认为将视图模板文件(.hbs、.ejs 等)存储在提供的模块
中是有意义的,libs
@Controller
只有相关的模板应该在 dist/ 中发布,当我构建应用程序时,
我有一些业务/法律/安全限制,迫使我避免libs
在某些apps
生产环境中存在一些模板。例如。my-secret-algo-lib
不应该出现在my-public-unsecure-internet-app
所以它制作了一个像这样的文件结构:
monorepo/
apps/
my-first-app/
src/
main.ts <-- nest bootstrap function is here
...
my-second-app/
...
libs/
my-first-lib/
src/
my-first-lib.module.ts
my-first-lib.controller.ts <-- @Render('my-view')
...
views/
my-view.ejs <-- the view
...
目标
我想实现生成以下文件结构的构建:
dist/
apps/
my-first-app/
main.js
views/
my-first-lib/
my-view.ejs
假如说:
my-first-app
进口my-first-lib
- 可能存在于未使用库中的视图不应包含在
dist/
问题
- 现有工具可以做到这一点吗?
- 这会被认为是反模式吗?如果是这样,我应该如何构建事物?
- 如果两者的答案都是“否”,我应该自己构建一些东西还是加入任何现有的努力?
问题的另一部分是 NestJS 应用程序模块配置,但我想这是最后一个......
解决方案
推荐阅读
- android - Presenter 方法和回调的圈复杂度计算
- python - Python 3.8 - 试图将我的随机数保存到变量中
- youtube - 您如何使用 youtube-dl 录制直播的早期部分?
- amazon-dynamodb - 根据变化的值对 DynamoDB 中的数据进行排序
- reactjs - ReactJS FullCalendar 不会将事件加载到日历中
- c - 如何将在命令行上键入的行存储到 C 中的缓冲区中?
- list - 如何对具有预定组大小的组进行排序?
- javascript - 如何使用 1 个全局内存数组在 JavaScript 中模拟带有参数和局部变量的调用堆栈?
- asp.net - What specs should I use for my .NET webapp on Azure, or something similar?
- php - 我可以用这个“用户'root'@'10.0.1.168'的访问被拒绝(使用密码:YES)”做什么?