Плагин nest.js swagger не найден в jenkins

С Nest.js я использую плагин @nestjs/swagger. все хорошо работает на dev. в jekins я вытаскиваю код и делаю сборку. Для этого я установил на сервере nest cli. я получаю эту ошибку на этапе сборки:

> nest build
Error  "@nestjs/swagger/plugin" plugin could not be found!

Что я делаю неправильно? сервер ubuntu 17, в моем nest-cli.json у меня есть это:

{
  "collection": "@nestjs/schematics",
  "sourceRoot": "src",
  "compilerOptions": {
    "plugins": ["@nestjs/swagger/plugin"]
  }
}

и опять же, локально работает нормально. проблема только в рабочем пространстве Дженкинса. Спасибо!

4 ответа

У меня была точно такая же проблема.

Я решил это с помощью этого:

  1. Убедитесь, что у вас установлен nestcli: npm i -g @nestjs/cli
  2. Перед установкой npm обновите nestcli при развертывании: nest update
  3. Если это не помогает, попробуйте другую версию Swagger. У меня была проблема с версией 4.5.9, я обновился до@nestjs/swagger": "^4.5.11 и это помогло.

Надеюсь, что это работает для вас.

Я также получал сообщение о том, что плагин «@nestjs/swagger/plugin» не установлен.

В моем случае проблема была в старой версии узла. Render.com (где размещен мой сервер) использует Node версии 14 по умолчанию. В результате детектор плагинов не смог обнаружить мой плагин, хотя он был установлен вместе с метаданными отражения.

На данный момент для Nest.js требуется Node.js версии 16 или выше:https://docs.nestjs.com/first-steps#preреквизиты.

Добавление этих строк в корень моего package.json заставило Render.com использовать более свежую версию:

        "engines": {
    "node": ">=16"
  }

Я рекомендую всем, кто сталкивается с этой ошибкой, поместить лог в исходный код cli именно здесь.

The nestcli скрывает истинное сообщение об ошибке от необходимости использования плагинов, так что это может быть целый ряд проблем.

В моем случае мне не хваталоreflect-metadatapackage после перехода на новый monrepo.

Module 'reflect-metadata' not found

Поэтому просто убедитесь, что у вас есть все необходимые модули для NestJS.

Плагин Nest можно найти в вашем каталоге node_modules по адресу: @nestjs/swagger/dist/plugin.

Это должно быть установлено в параметрах вашего компилятора:

      "compilerOptions": {
     "plugins": ["@nestjs/swagger/dist/plugin"]
}
Другие вопросы по тегам