Плагин 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 ответа
У меня была точно такая же проблема.
Я решил это с помощью этого:
- Убедитесь, что у вас установлен nestcli:
npm i -g @nestjs/cli
- Перед установкой npm обновите nestcli при развертывании:
nest update
- Если это не помогает, попробуйте другую версию 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 nest
cli скрывает истинное сообщение об ошибке от необходимости использования плагинов, так что это может быть целый ряд проблем.
В моем случае мне не хваталоreflect-metadata
package после перехода на новый monrepo.
Module 'reflect-metadata' not found
Поэтому просто убедитесь, что у вас есть все необходимые модули для NestJS.
Плагин Nest можно найти в вашем каталоге node_modules по адресу: @nestjs/swagger/dist/plugin.
Это должно быть установлено в параметрах вашего компилятора:
"compilerOptions": {
"plugins": ["@nestjs/swagger/dist/plugin"]
}