Не удается найти модуль '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