NPM CI и Bluebird обещают предупреждения - PullRequest
0 голосов
/ 16 января 2019

Краткое вступление : мы начинаем использовать npm ci для более надежной установки зависимостей для нашего реагирующего приложения вместо install. Но при использовании ci.

мы заметили странное поведение при отказе от обещаний.

Описание: При запуске npm ci в среде узла с NODE_ENV, установленным на development, мы получаем сотни предупреждений об обещаниях из библиотеки обещаний Bluebird:

(node:95984) Warning: .then() only accepts functions but was passed: [object Object]

Мне любопытно, происходят ли они из самого кода npm CI, поскольку мы никогда не видели этих ошибок, кроме случаев использования npm CI.

Вы также можете увидеть в их исходный код , что NPM использует библиотеку Bluebird Promise версии 3.5.3.

Чтобы проверить это, я постепенно удалил все главные и dev-зависимости в нашем package.json, сгенерировав файлы блокировки и запустив npm ci, чтобы увидеть, происходил ли он из каких-то определенных пакетов, но это происходило каждый раз до последний пакет (и альтернативные одиночные пакеты).

Я также создал совершенно отдельное репозиторий npm и установил пакет (act-scripts @ latest), сгенерировал файл блокировки, и при запуске npm ci получил те же предупреждения об обещании.

Мы смогли заставить замолчать ошибки при сборке, установив переменную среды BLUEBIRD_PROMISES=0 в соответствии с рекомендациями этого npm , и это действительно заставило замолчать предупреждения. Но мы хотели бы знать, почему это происходит, и если есть что-то, лежащее в основе этих предупреждений, которое заслуживает большего внимания, чем просто заставляет их замолчать.

Информация о версии:
нпм: 6.4.1
узел: 10.15.0

...