2015-10-03 10 views
9

Występuje nieoczekiwane zachowanie podczas używania npm. Na przykład podczas instalacji ekspresowej z poleceniem:npm node_modules nie jest poprawnie zagnieżdżony?

npm install express 

Spodziewam się, że folder o nazwie „express” będzie utworzony w katalogu „node_modules” i że to Zależności byłby zainstalowany w ramach „node_modules” sub- katalog w tym folderze.

Widzę, że tworzony jest folder "ekspresowy", ale wszystkie jego zależności są dodawane do katalogu głównego "node_modules" (ten sam poziom, co ekspresowe) w moim folderze projektu, a nie zagnieżdżone w pliku "express". " teczka.

Dlaczego tak się dzieje? (używając npm v3.3.5)

+1

w przypadku zagnieżdżenia jest preferowane: http://stackoverflow.com/a/35227212/580651 – luchaos

Odpowiedz

13

Jest to zmiana projektu dla npm @ 3, domyślnie deduplikuje. Zobacz:

Płaskie, płaskie, płaskie!

Twoje zależności zostaną teraz zainstalowane na maksymalnie płaskiej. O ile jest to możliwe , wszystkie zależności i zależności między nimi i IMI zostaną zainstalowane w folderze twojego projektu, bez zagnieżdżania . Zobaczysz tylko moduły zagnieżdżone pod sobą, gdy dwa (lub więcej) moduły mają sprzeczne zależności.

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

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

+0

dziękuję za odpowiedź! Pomyślałem, że jest to albo opcja konfiguracji, albo zmiana, ale nie znalazłem go w mojej misji Google:] – masterwok

+0

Nie ma za co! – JMM

+1

Czy jest jakiś sposób, aby odzyskać zagnieżdżone zależności? Mam na myśli, dostaję się do łyku i uderza mnie 131 katalogów w moim folderze modułów węzła. To naprawdę przytłaczające i denerwuje mnie. – Abdel

Powiązane problemy