В npm 3 версии изменили отображение вывода и расположение файлов при установке пакетов. А так же много чего еще. И вывод списком всех зависимостей не всегда полезен, вот представьте, вы склонировали крупный проект и вводите команду npm install (npm i), и после некоторого времени появляется вывод в терминале из пару тысяч строк. По умолчанию все так и происходит.

Пример вывода при установки enzyme:

└─┬ enzyme@2.4.1
  ├─┬ cheerio@0.20.0
  │ ├─┬ css-select@1.2.0
  │ │ ├── boolbase@1.0.0
  │ │ ├── css-what@2.1.0
  │ │ ├── domutils@1.5.1
  │ │ └── nth-check@1.0.1
  │ ├─┬ dom-serializer@0.1.0
  │ │ └── domelementtype@1.1.3
  │ ├── entities@1.1.1
  │ ├─┬ htmlparser2@3.8.3
  │ │ ├── domelementtype@1.3.0
  │ │ ├── domhandler@2.3.0
  │ │ ├── entities@1.0.0
  │ │ └─┬ readable-stream@1.1.14
  │ │   └── isarray@0.0.1
  │ └─┬ jsdom@7.2.2
  │   ├── abab@1.0.3
  │   ├── acorn@2.7.0
  │   ├─┬ acorn-globals@1.0.9
  │   │ └── acorn@2.7.0
  │   ├── cssom@0.3.1
  │   ├── cssstyle@0.2.37
  │   ├─┬ escodegen@1.8.1
  │   │ ├── estraverse@1.9.3
  │   │ └── source-map@0.2.0
  │   ├── nwmatcher@1.3.8
  │   ├── parse5@1.5.1
  │   ├── symbol-tree@3.1.4
  │   ├── webidl-conversions@2.0.1
  │   ├─┬ whatwg-url-compat@0.6.5
  │   │ └── tr46@0.0.3
  │   └── xml-name-validator@2.0.1
  ├── is-subset@0.1.1
  ├── object-is@1.0.1
  ├── object.assign@4.0.4
  └── object.values@1.0.3

А вот так будет выглядеть после правки конфига:

└── enzyme@2.4.1

Можно этого добиться несколькими способами,

  • добавлять флаг --depth=0 к команде установке npm install --depth=0

  • создать Makefile и добавить такую запись

install:
    npm install --depth=0

и запустить командой make install

  • править конфигурацию npm

Думаю, что каждый раз прописывать npm instal --depth=0 не удобно,
да и make install можно забыть ввести, все таки npm install (npm i) роднее. Так что придется править конфиг.

Если кто не знал, у npm есть 2 конфига - локальный и глобальный, мы будем править глобальный.

Для этого есть команда:

npm config set depth 0

Команда присвоит параметру depth значение 0, что нам и надо было. Чтобы проверить применилось ли наше изменение, есть команда get

npm config get depth

Она вернет текущее значение параметра depth. И теперь при каждой последующей установке npm пакетов, мы не будем видеть вывод всех зависимостей, а только тех, которые указанны в package.json файле.