Разница между значениями `npm install` и` npm audit`? - PullRequest
0 голосов
/ 08 сентября 2018

После недавнего добавления npm audit (для аудита зависимостей) я заметил огромное расхождение между количеством пакетов added (установленных в node_modules) и количеством audited на npm. Вот пример:

npm install output

Вот мои вопросы:

  • Правильно ли, что 281 это общее количество установленных пакетов?
  • Почему npm проверяет намного больше пакетов, чем в моем проекте?

Для меня имеет смысл, что npm, возможно, придется вернуться назад и audit других версий пакетов, если он обнаружит уязвимость, но в этом случае это found 0 vulnerabilities, так зачем же дополнительная работа?

UPDATE:

Я думаю, что есть небольшая путаница в отношении зависимостей верхнего уровня против подчиненных. Выполните следующие команды, чтобы воспроизвести подобное расхождение:

mkdir test-npm-count-discrepancy
cd test-npm-count-discrepancy
npm init
npm i standard-version

Обратите внимание, что (на момент написания этой статьи) зависимости 200+ равны added (т.е. standard-version и все его подчиненные зависимости), но пакеты 1000+ равны audited. Просто повторюсь, главный вопрос, приведенный выше: «Почему npm проверяет больше пакетов, чем то, что фактически установлено?».

1 Ответ

0 голосов
/ 09 сентября 2018

По первому вопросу: - сообщество, без ссылки на что-то вроде списка зависимостей или вашего package.json, на самом деле не сможет этого сказать. Однако, если в вашем пакете есть только несколько файлов, то в большинстве случаев это все еще нормально. Возможно, вы установили 12 самостоятельно, но NPM автоматически устанавливает большинство, если не все, зависимости для вашего приложения. Это помогает ускорить рабочий процесс.

По второму вопросу: - как упоминалось в моем ответе на первый вопрос, он проверяет как те, что вы установили, так и те, которые были установлены автоматически, чтобы те, которые вы установили, работали правильно.

По третьему вопросу: - Он всегда проверяет наличие уязвимостей, отмеченных разработчиками, чтобы вы могли иметь последнюю версию, которая в большинстве случаев наименее глючная, наиболее функциональная и наиболее безопасная.

Edit: Весь смысл npm install в том, чтобы обновлять текущие зависимости и устанавливать новые в каталог. Смысл npm audit заключается в проверке зависимостей, для которых установлены обновления, исправляющие проблемы безопасности.

Редактировать 2: Я думаю, что у меня это есть: это может быть аудит установленных зависимостей для производства, ваших зависимостей и dev-зависимостей, чтобы предупредить вас, что одна из ваших зависимостей была небезопасно построена разработчиком.

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