2015-10-03 18 views
9

Я получаю неожиданное поведение при использовании npm. Например, при установке экспресса с помощью команды:npm node_modules не правильно вложен?

npm install express 

Я бы ожидать, что папка с именем, «экспрессом» будет создана в директории «node_modules», и что это зависимости будут установлены в пределах «node_modules» суб- в этой папке.

Что я вижу, так это то, что создается «экспресс» папка, но все ее зависимости добавляются в корневую директорию «node_modules» (тот же уровень, что и экспресс) в моей папке проекта, а не вложены в «экспресс» ".

Почему это происходит? (с использованием npm v3.3.5)

+1

в случае вложенности является предпочтительным: http://stackoverflow.com/a/35227212/580651 – luchaos

ответ

13

Это изменение дизайна для npm @ 3, оно дедуплицирует по умолчанию. См .:

Плоский, плоский, плоский!

Ваши зависимости теперь будут установлены максимально плоские. Насколько возможно установить , все ваши зависимости и их зависимости, а также зависимости OFIR будут установлены в папкевашего проекта без вложения . Вы увидите только модули, вложенные друг в друга, когда два (или больше) модулей имеют конфликтующие зависимости.

https://github.com/npm/npm/blob/ff47bc138e877835f1c0f419fea5f5672110678a/CHANGELOG.md#flat-flat-flat

https://github.com/npm/npm/issues/6912

+0

Спасибо большое за этот ответ! Я решил, что это либо вариант конфигурации, либо изменение, но не удалось найти его в квесте Google:] – masterwok

+0

Добро пожаловать! – JMM

+1

Есть ли способ вернуть вложенные зависимости? Я имею в виду, я попадаю в глоток и нажимаю 131 каталоги по всей папке модулей узлов. Его действительно подавляющее и расстраивает меня. – Abdel

Смежные вопросы