как заставить npm 3 установить вложенные зависимости?
Я только что обновился доnpm версия 3 и заметил одно из самых больших изменений, которые он сделал, заключается в том, что он обеспечиваетплоское дерево зависимостей.
Ваши зависимости теперь будут установлены максимально плоско. Насколько это возможно, все ваши зависимости, и их зависимости, и их зависимости будут установлены в вашем проектеnode_modules
папка без вложенности. Вы увидите модули, вложенные друг в друга, только когда два (или более) модуля имеют конфликтующие зависимости.
Так, например, если пакетA зависит от пакетаB, когда тыnpm install A
Вы получите эту структуру файла:
--- root/
|--- node_modules/
|--- A/
|--- B/
вместо старой файловой структуры версии 2 или ниже:
--- root/
|--- node_modules/
|--- A/
|--- node_modules/
|--- B/
Первая (и я уверен, что не последняя) проблема, с которой я столкнулся, заключалась в следующем:
пакетA не знает о поведении npm v3 и зависит от пакетаB, НоA предполагает старую (v2) файловую структуру, потому что она имеетnode_modules/B
в своем коде, а не собственно../node_modules/B
, Теперь код изA не будет компилироваться, потому что ищетB/
в неправильном каталоге.
Если мне не хочется беспокоить разработчика, чтобы он исправлял код, и жду обновленияAИнтересно, есть ли способ установить опцию, которая заставит npm установитьAЗависимости внутри егоnode_modules
папку, так же, как npm v2 сделал бы это.