如何从单存储库构建 NestJs api

How to build a NestJs api from a mono repository

我正在做一个项目,我们将代码存储在 nrwl "managed" 的 monorepo 中。回购包含一对 angular 应用程序和一对 nestjs apis.

现在我们要对 api 进行 docker 化,以便能够将它们部署到我们的 kubernetes。

我可以通过调用 ng serve api1 来启动单个 api。我还可以通过 运行 ng build api1 构建单个 api。我遇到的问题是每个 api 都需要与它一起部署的完整 node_modules 文件夹。据我所知 angular 使用 webpack 来打包它的所有 depedencies。

有没有办法构建 NestJs api 并包含所有必需的 node_modules?

我们实际上刚刚发布了一种使用 NestJS 创建 monorepos 的本机方法,您可以在 Trilon 博客

上阅读有关 full announcement here 的更多信息

使用独立的 NestJS 应用程序,您现在可以简单地创建(另一个应用程序或库)并自动将其变成一个 monorepo 工作区。

# make sure you have the latest @nestjs/cli
npm i --g @nestjs/cli

# if you want to create an app
nest g app my-other-app

# library
nest g lib my-library

现在您将能够使用 nest build NAME 构建您需要的任何应用程序,并且所有 node_modules 等都将被正确捆绑,等等!


这个新的工作区设置将创建您习惯的命名约定:

# ** FROM

 /src/ ... application code ...

# ** TO

/apps/
  /nest-app/
  /another-app/

/libs/
  /some-shared-lib/
  / ... /

目前在 Nest 中设置 monorepos 的方式非常适合只有 nest/node 代码库的 monorepos。前端 monorepos 可以在其他地方单独保存,因为可以在 FE<>BE 之间共享的代码有限(只有一些没有装饰器的接口)。

希望对您有所帮助:)