node.js - Nest.js Typ 'DynamicModule' kan inte tilldelas typen 'ForwardReference' på nest-modules/mailer
Jag har en Nest.js-applikation. Jag ville lägga till MailerModule till min app med följande länk -> https://npm.taobao.org/package/@nest-modules/mailer
Men jag gjorde precis följande steg:
Först, npm install --save @nest-modules/mailer
För det andra lägger jag till appmodulens mailkonfiguration men det ger ett fel, här är min app.module.ts:
import { Module } from '@nestjs/common';
import { HandlebarsAdapter, MailerModule } from '@nest-modules/mailer';
@Module({
imports: [
MailerModule.forRootAsync({
useFactory: () => ({
transport: 'smtps://[email :[email ',
defaults: {
from:'"nest-modules" <[email >',
},
template: {
dir: __dirname + '/templates',
adapter: new HandlebarsAdapter(), // or new PugAdapter()
options: {
strict: true,
},
},
}),
}),],
})
export class ApplicationModule {}
Nu kan jag inte kompilera eftersom det säger att:
TS2345: Argument av typen '{ imports: DynamicModule[]; }' kan inte tilldelas till parametern av typen 'ModuleMetadata'. Typerna av egenskapen 'imports' är inkompatibla. Typen 'DynamicModule[]' kan inte tilldelas till typen '(Type | DynamicModule | Promise | ForwardReference)[]'. Typen 'DynamicModule' kan inte tilldelas till typen 'Type | DynamicModule | Promise | ForwardReference'. Typen 'DynamicModule' kan inte tilldelas till typen 'ForwardReference'. Egenskapen 'forwardRef' saknas i typen 'DynamicModule'.
Svar #1
Kanske kolla vilken version av nest du använder, detta problem kan vara löst i versioner av nestjs 6+:
https://github.com/nestjs/nest/issues/669
Svar #2
Lösningen på detta för mig var precis. Nästan säkert beror det på att du har flera versioner av @nestjs/common eller ett annat paket installerat. Jag fixade det med npm upgrade.
Om du vill verifiera att allt är från version 10, prova detta:
npm ls | grep '@nestjs' | sed 's#.*/\(.*\)@.*#@nestjs/\1#g' | xargs npm ls | grep @10
