Хапи жалуется на отсутствующую зависимость плагина, которая установлена - PullRequest
0 голосов
/ 07 апреля 2020

При запуске моей программы я получаю:

Error: Plugin routes-api-cruises missing dependency @hapi/nes
    at new module.exports (/usr/src/app/node_modules/@hapi/hoek/lib/error.js:23:19)
    at Object.module.exports [as assert] (/usr/src/app/node_modules/@hapi/hoek/lib/assert.js:20:11)
    at module.exports.internals.Core._validateDeps (/usr/src/app/node_modules/@hapi/hapi/lib/core.js:348:22)
    at module.exports.internals.Core._initialize (/usr/src/app/node_modules/@hapi/hapi/lib/core.js:320:14)
    at module.exports.internals.Core._start (/usr/src/app/node_modules/@hapi/hapi/lib/core.js:240:24)
    at internals.Server.start (/usr/src/app/node_modules/@hapi/hapi/lib/server.js:523:27)
    at startServer (/usr/src/app/server.js:12:21)
    at processTicksAndRejections (internal/process/task_queues.js:85:5)

Я не знаю, означает ли «Плагин x отсутствие зависимости y », что плагину не удается объявляет используемую зависимость или объявленная зависимость не установлена ​​ .

Похоже, что плагин объявляет свою зависимость:

exports.plugin = {
  name: 'routes-api-cruises',
  dependencies: ['hapi-mongodb', '@hapi/nes'],  // <- there it is
  ...
}

Выглядит также, как будто пакет установлен:

$ find node_modules -iname 'nes'
node_modules/@hapi/nes

И package.json включает в себя:

"dependencies": {
   "@hapi/nes": "^11.2.1",
   ...
}

И package-lock.json включает в себя:

@hapi/nes": {
      "version": "11.2.2",
      "resolved": "https://registry.npmjs.org/@hapi/nes/-/nes-11.2.2.tgz",
      "integrity": "sha512-XGFfTQsBB7NnpIgVdnz36lrZjJlUgni0tLmcN4TWiYdCGxNr6+YRreQ6jdsGN3j8qfZ8yLBY0FsGkHBiMPKLAw==",
      ...
}

код использует функцию @hapi/glue compose() и передает список плагинов для регистрации, а @hapi/nes присутствует.

1 Ответ

0 голосов
/ 07 апреля 2020

Я нашел источник этой ошибки в исходном коде Hapi и использовал Инспектор узлов, чтобы прикрепить точку останова.

Функция _validateDeps перечисляет зависимости, объявленные каждым плагином , Это выглядит в this.registrations, карте регистрации плагинов.

В this.registrations, @hapi/nes отображается просто nes. Изменение объявления зависимости плагина на nes делает поиск подходящим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...