首页 > 解决方案 > 如何构建 NestJS monorepo 并使用相关资产构建应用程序?

问题描述

情况

我正在构建一组基于NestJS monorepo的应用程序。

我有几个apps依赖于几个共享libs的。

apps它们彼此相似,但在某些功能上可能仍然不同,因此 monorepo 完全有意义。

一些libs提供@Controller(),哪些@Render()视图用于常见功能。

 构想

  1. 模板文件应该存在于模块中。由于控制器和渲染模板之间存在高度耦合,因此我认为将视图模板文件(.hbs、.ejs 等)存储在提供的模块
    中是有意义的,libs@Controller

  2. 只有相关的模板应该在 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

假如说:

 问题

问题的另一部分是 NestJS 应用程序模块配置,但我想这是最后一个......

标签: nestjs

解决方案


推荐阅读