我们正在运行几个NestJS应用程序以提供不同的服务。它们都共享一些通用代码,在我们的示例中为ConfigModule和CacheModule。我想将它们分解并放入公司的“通用” npm软件包中,以最大程度地减少代码复制。
我遇到了一个错误:Nest cannot export a component/module that is not a part of the currently processed module (ConfigModule). Please verify whether each exported unit is available in this particular contex
。
我对真正的问题有些困惑。任何帮助深表感谢。
在app.ts
中的服务A:
import { ConfigModule } from '@company/npm-common';
...
@Module({
imports: [ConfigModule, ...],
})
export class AppModule {}
现在@company/npm-common
已通过file:../npm-common
导入package.json中
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 {}
答案 0 :(得分:0)
这个问题的愚蠢答案是主应用程序和外部模块加载了不同版本的NestJS。在这种意义上,似乎5.5版与6版不兼容。