Гнездо Js Swagger: не удается найти модуль - (внешний тип не найден) - PullRequest
0 голосов
/ 08 января 2020

У меня есть такая сущность, где я определяю timestamp поле, которое luxon DateTime:

import { DateTime } from 'luxon'
import { Table, Column, Model, DataType } from 'sequelize-typescript'
import Sequelize from 'sequelize'
import { ApiProperty } from '@nestjs/swagger'

@Table({})
export default class MyModel extends Model<MyModel> {
  @ApiProperty({type: () => DateTime})
  @Column({
    type: DataType.DATE,
  })
  timestamp: DateTime
}

Мой tsconfig выглядит так:

{
  "compilerOptions": {
    "module": "CommonJS",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "esModuleInterop": true,
    "target": "ES6",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "noUnusedLocals": true,
    "moduleResolution": "Node"
  },
  "exclude": ["node_modules", "dist"]
}

Когда я пытаюсь запустить мой NestJs сервер, плагин swagger пытается получить типы из метаданных моего объекта, что заставляет его пытаться и require '../../../node_modules/@types/luxon/index' luxon типы.

Типы установлены, и я их вижу. Они также, кажется, распознаются моим vscode.

Однако я получаю сообщение об ошибке:

(node:272) UnhandledPromiseRejectionWarning: Error: Cannot find module '../../../node_modules/@types/luxon/index'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.type (projectDir\dist\src\usage\entities\register-read.entity.js:24:158)
    at SchemaObjectFactory.mergePropertyWithMetadata (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:86:38)
    at modelProperties.map.key (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:55:35)
    at Array.map (<anonymous>)
    at SchemaObjectFactory.exploreModelSchema (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:54:52)
    at SchemaObjectFactory.createNotBuiltInTypeReference (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:117:37)
    at SchemaObjectFactory.mergePropertyWithMetadata (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:93:25)
    at modelProperties.map.key (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:55:35)
    at Array.map (<anonymous>)
    at SchemaObjectFactory.exploreModelSchema (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:54:52)
    at SchemaObjectFactory.createNotBuiltInTypeReference (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:117:37)
    at SchemaObjectFactory.mergePropertyWithMetadata (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:93:25)
    at modelProperties.map.key (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:55:35)
    at Array.map (<anonymous>)
    at SchemaObjectFactory.exploreModelSchema (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:54:52)
    at SchemaObjectFactory.createNotBuiltInTypeReference (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:117:37)
    at SchemaObjectFactory.mergePropertyWithMetadata (projectDir\node_modules\@nestjs\swagger\dist\services\schema-object-factory.js:93:25)

1 Ответ

0 голосов
/ 08 января 2020

Кажется, что это вызвано неработающим кодом в swagger / version> 4.09

...