nestjs-如何在nestjs应用程序之间使用共享模块

时间:2019-12-14 17:12:29

标签: node-modules nestjs

让我们说我有一个NestJs项目,它由以下模块组成,每个模块都有自己的git存储库并部署在不同的计算机上:

  1. Api模块
  2. 消息队列处理模块

两个模块都共享(库)模块#3。用于访问RabbitMq。假设#3模块是RabbitMq库的某种抽象,它定义了访问MQ的实体和服务,因此模块#1也是如此。和#2。甚至不知道,他们正在使用RabbitMq。计划将#3纳入/用作#1和#2的库,而不是作为微服务。

应如何将它们整合在一起? 让我们从API模块的角度进行假设: -它在node_modules文件夹中具有RabbitMq模块。 -我想使用RabbitMq模块中的依赖注入。理想情况下,将其公开为NestJs模块,以在API模块的@Module导入中使用。

我应该在RabbitMq模块中将NestJs用作peerDependency吗? 还是应该在RabbitMq模块中编写代码,以某种方式相对于父代= API模块的node_modules引用NestJs FW?

我有3-4个共享模块,我需要在模块#1和#2之间共享。不只是MQ。

还是应该完全避免在RabbitMq模块中使用NestJS? 感谢您的宝贵时间。

2 个答案:

答案 0 :(得分:2)

您可以按照依赖关系,使用与NestJS相关的模块创建npm模块的方法。 John Biundo有a good article on dev.to关于创建NestJS模块并将其发布到npm的信息。

答案 1 :(得分:1)

可以使用nest js的工作空间概念。我认为 monorepo 模式将是一种无需制作 npm 模块等复杂性即可提供帮助的模式。

https://docs.nestjs.com/cli/monorepo