Не удается найти модуль 'swagger_params_parser'

У меня есть проект Swagger NodeJS, который был создан с использованием Swagger

Swagger использует swagger-connect 0.1.0 из коробки, но теперь я обновился до swagger-connect 0.7.0, используя ручные инструкции, которые включали добавление следующего в config/default.yml:

_swagger_params_parser:                    # <= Add this definition
  name: swagger_params_parser
  jsonOptions: {}
  urlencodedOptions:
    extended: false
  multerOptions:
    inMemory: true
  textOptions:
    type: "*/*"

и в разделе 'swagger_controllers:' я добавил:

 - swagger_params_parser 

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

Error initializing middleware
May 22 13:25:27 myserver "myapp": Error: Cannot find module '/var/www/myapp/node_modules/swagger-connect/node_modules/swagger-node-runner/node_modules/bagpipes/lib/fittings/swagger_params_parser'

Я запускаю сервер через:

node app.js

Таким образом, это выглядит как потенциальная зависимость кровоточить на моем локальном компьютере, но я уничтожил (rm -Rf) 'node_modules' и повторно запустил npm install и он все еще отлично работает на моей локальной машине, но ломается на сервере.

Любые идеи, почему отсутствует swagger-params-parser?

Кроме того, еще одна странная вещь заключается в том, что swagger-params-parser не существует локально в каталоге '/var/www/myapp/node_modules/swagger-connect/node_modules/swagger-node-runner/node_modules/bagpipes/lib/fittings/swagger_params_parserи все же локально это работает!?

1 ответ

Решение

Вопрос оказался бездомным node_modules каталог на сервере (мы обычно используем node_modules_production).

Из этого я узнал две вещи:

1.) node_modules используется вместо node_module_production если он существует. Мой RPM не перезаписывал каталог и, следовательно, оставил старую копию node_modules который был неправильно упакован в какой-то момент. Приложение Swagger загружало модули из node_modules и не node_modules_production

2.) swagger_params_parser действительно отсутствует даже в рабочей версии кода, поэтому он выглядит так:

Error initializing middleware
May 22 13:25:27 myserver "myapp": Error: Cannot find module '/var/www/myapp/node_modules/swagger-connect/node_modules/swagger-node-runner/node_modules/bagpipes/lib/fittings/swagger_params_parser

вводит в заблуждение, так как этот модуль никогда не присутствует, по крайней мере, в версии 0.7.0 swagger-connect

Другие вопросы по тегам