MODULE_NOT_FOUND Nestjs 和 Swagger

MODULE_NOT_FOUND Nestjs and Swagger

我正在尝试将 Swagger 添加到我的 Nestjs 应用程序中。当我试图编译它时抛出模块未找到错误。 我使用 Nestjs 文档中的相同代码。 这是我的 main.ts:

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  const config = new DocumentBuilder()
    .setTitle('Cats example')
    .setDescription('The cats API description')
    .setVersion('1.0')
    .addTag('cats')
    .build();
  const document = SwaggerModule.createDocument(app, config);
  SwaggerModule.setup('api', app, document);

  await app.listen(3000);
}
bootstrap();

这是错误:

internal/modules/cjs/loader.js:883
  throw err;
  ^

Error: Cannot find module '@nestjs/core/router/route-path-factory'
Require stack:
- D:\BK\solidity\MVPApp\blockchain\back-end-student-wallet-v2\node_modules\@nestjs\swagger\dist\swagger-explorer.js
- D:\BK\solidity\MVPApp\blockchain\back-end-student-wallet-v2\node_modules\@nestjs\swagger\dist\swagger-scanner.js 
- D:\BK\solidity\MVPApp\blockchain\back-end-student-wallet-v2\node_modules\@nestjs\swagger\dist\swagger-module.js  
- D:\BK\solidity\MVPApp\blockchain\back-end-student-wallet-v2\node_modules\@nestjs\swagger\dist\index.js
- D:\BK\solidity\MVPApp\blockchain\back-end-student-wallet-v2\node_modules\@nestjs\swagger\index.js
- D:\BK\solidity\MVPApp\blockchain\back-end-student-wallet-v2\dist\main.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)

我正在使用 Node 14.15.1,@nestjs/swagger 5.0.0,swagger-ui-express: 4.1.6

更新最新版本的@nestjs/platform-express、@nestjs/common、@nestjs/core (8.0.0) 解决了我的问题。好像 nestjs/cli 使用了以前版本的 nestjs

Swagger v5 与 Nest v8 兼容(@nestjs/core@^8.0.0、@nestjs/common@^8.0.0 等) Swagger v4 与 Nest v7 兼容

来源自https://github.com/nestjs/nest/issues/7499