我们正在为不同的服务运行几个 NestJS 应用程序。它们都共享一些通用代码,在我们的例子中是 ConfigModule 和 CacheModule。我想将它们分解并放入公司“通用”npm 包中,以最大程度地减少代码复制。
但我遇到了一个错误:
Nest 无法导出不属于该组件/模块的组件/模块
当前处理的模块(ConfigModule)。请验证是否每个
导出单位在此特定上下文中可用
我有点不知道问题到底是什么。任何帮助深表感谢。
In app.ts
在服务A上:
import { ConfigModule } from '@company/npm-common';
...
@Module({
imports: [ConfigModule, ...],
})
export class AppModule {}
现在@company/npm-common
导入到 package.json 中file:../npm-common
npm-common/index.ts
:
export * from './Config';
npm-common/Config/index.ts
export { ConfigService } from './config.service';
export { ConfigModule } from './config.module';
npm-common/Config/config.service
:
import { Global, Module } from '@nestjs/common';
import { ConfigService } from './config.service';
@Global()
@Module({
providers: [
{
provide: ConfigService,
useValue: new ConfigService(),
},
],
exports: [ConfigService],
})
export class ConfigModule {}