2015-10-03 15 views
9

Ricevo un comportamento imprevisto durante l'utilizzo di npm. Per esempio quando si installa Express con il comando:npm node_modules non correttamente nidificati?

npm install express 

Mi aspetterei che una cartella denominata, "Express" si verrebbe a creare nella directory "node_modules" e che si tratta di dipendenze siano installati all'interno di un "node_modules" sub- directory all'interno di questa cartella.

Quello che sto vedendo è che viene creata la cartella "express" ma tutte le sue dipendenze vengono aggiunte alla directory root "node_modules" (stesso livello di express) nella cartella del progetto e non nidificate all'interno del "express" " cartella.

Perché sta succedendo? (usando npm v3.3.5)

+1

in caso di nidificazione è preferito: http://stackoverflow.com/a/35227212/580651 – luchaos

risposta

13

È una modifica di progettazione per npm @ 3, che deduplica per impostazione predefinita. Vedi:

Piatto, piatto, piatto!

Le dipendenze verranno ora installate al massimo. Nella misura in cui è possibile , tutte le dipendenze e le loro dipendenze e LE RELATIVE dipendenze verranno installate nella cartella node_modules del progetto senza nidificazione . Vedrai solo i moduli annidati uno sotto l'altro quando due (o altri moduli ) hanno dipendenze in conflitto.

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

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

+0

Grazie mille per questa risposta! Ho pensato che fosse o un'opzione di configurazione o un cambiamento, ma non riuscivo a trovarlo nella mia missione di google:] – masterwok

+0

Prego! – JMM

+1

Esiste un modo per ripristinare le dipendenze nidificate? Voglio dire, sto entrando in gulp e sto colpendo con 131 directory in tutta la mia cartella dei moduli del nodo. È davvero travolgente e mi rende frustrato. – Abdel

Problemi correlati