Что выводится в списке пакетов npm?

Если запустить команду как список npm, и получается список зависимостей. Что же означает дедупликация (deduped)?

Список по команде npm list

Список зависимостей по команде npm list

В документации явно не указано, что означает атрибут deduped, а только то, что делает команда

.

Часть путаницы заключается в том, что большинство людей не в явном виде называют

 но все же дедуплировали пакеты в своем дереве зависимостей при вызове 

. Это потому, что 

 неявно вызывает дедупю (или делает что-то подобное !?), что также не указано в документации.

Итак: Естественно, “deduped” является коротким для дедуплицированных → Duplicates, где удалено. В документе для npm dedupe (спасибо @Molda) объясняется, как это делает npm: похоже, что несколько пакетов имеют одинаковые зависимости (что означает те же пакеты и версию (диапазон)) и “указывает” их на один и тот же пакет → тот же пакет не нужно устанавливать дважды! Это просто ссылка.

Кроме того, он перемещает пакеты “вверх по дереву” (выравнивает дерево). Это имеет общий смысл, поскольку в противном случае один пакет должен был бы выглядеть в node_modules какого-либо другого пакета (который был бы довольно грязным) и упрощал зависимости.

Вы можете проверить это, так как каждый пакет в вашем графике зависимостей, который говорит о дедупликации, может быть найден как минимум еще один раз на графике, обычно на “более высоком уровне”.

На экране, который вы разместили, 

 является зависимой от body-parser. Немного ниже, он также указан как прямая зависимость экспресса на один уровень выше.