Próbuję wyeksportować niestandardowy projekt oprogramowania pośredniego w Nestjs do wszystkich moich innych projektów (i importować to we wszystkich z nich). Moja faktyczna klasa to acl-jwt.middleware.ts w folderze Bootstrap {X1}}.

W acl-jwt.middleware.ts mam:

import { Injectable, NestMiddleware,  } from '@nestjs/common';

@Injectable()
export class AclJwtMiddleware implements NestMiddleware {
  use(req: any, res: any, next: () => void) {
    console.log("ACL JWT Middleware !!")
    next();
  }
}

A mój app.module.ts ma:

import { Module, NestModule, MiddlewareConsumer, RequestMethod } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AclJwtMiddleware } from './acl-jwt.middleware';

@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(AclJwtMiddleware).forRoutes({ path: '*', method: RequestMethod.ALL });
  }
}

I w moim innym projekcie app.module.ts, importuję tego podobnego

import { AclJwtMiddleware } from 'mi';

@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(AclJwtMiddleware).forRoutes({ path: '*', method: RequestMethod.ALL });
  }
}

mi to mój hostowany pakiet.

A potem, kiedy uruchomię mój drugi projekt, otrzymuję następujący błąd:

src/app.module.ts:16:34 - error TS2307: Cannot find module 'mi' or its corresponding type declarations.

16 import { AclJwtMiddleware } from 'mi';

Czy czegoś nie eksportuję? Czy nie importuję go prawidłowo?

Szukałem w całym internecie, ale nie mogłem znaleźć czegoś z moim przypadkiem użytkowania. Każda pomoc byłaby naprawdę dobra. Dziękuję wam wszystkim! :)

0
Gowtham Munukutla 13 październik 2020, 14:58

1 odpowiedź

Najlepsza odpowiedź

Musisz się upewnić, że w pakiecie {x1}} masz mi, masz main lub files wskazuje, że prawidłowo wyeksportowany plik / katalog. Jeśli jest to plik beczki, taki jak index.js, musisz odpowiednio upewnić się, że eksportuje oprogramowanie pośrednie prawidłowo.

0
Jay McDoniel 13 październik 2020, 18:04