Что выводится в списке пакетов npm?
Если запустить команду как список npm, и получается список зависимостей. Что же означает дедупликация (deduped)?
В документации явно не указано, что означает атрибут deduped, а только то, что делает команда
1 |
npm dedupe |
.
Часть путаницы заключается в том, что большинство людей не в явном виде называют
1 |
npm dedupe |
но все же дедуплировали пакеты в своем дереве зависимостей при вызове
1 |
npm list |
. Это потому, что
1 |
npm install |
неявно вызывает дедупю (или делает что-то подобное !?), что также не указано в документации.
Итак: Естественно, “deduped” является коротким для дедуплицированных → Duplicates, где удалено. В документе для npm dedupe (спасибо @Molda) объясняется, как это делает npm: похоже, что несколько пакетов имеют одинаковые зависимости (что означает те же пакеты и версию (диапазон)) и “указывает” их на один и тот же пакет → тот же пакет не нужно устанавливать дважды! Это просто ссылка.
Кроме того, он перемещает пакеты “вверх по дереву” (выравнивает дерево). Это имеет общий смысл, поскольку в противном случае один пакет должен был бы выглядеть в node_modules какого-либо другого пакета (который был бы довольно грязным) и упрощал зависимости.
Вы можете проверить это, так как каждый пакет в вашем графике зависимостей, который говорит о дедупликации, может быть найден как минимум еще один раз на графике, обычно на “более высоком уровне”.
На экране, который вы разместили,
1 |
content-type@1.0.4 |
является зависимой от body-parser. Немного ниже, он также указан как прямая зависимость экспресса на один уровень выше.