Ich habe ein paar Knotenpakete installiert und was ich festgestellt habe ist, dass NPM eine Reihe von Duplikaten erstellt.Der Node Package Manager (NPM) scheint doppelte Pakete zu liefern
Zum Beispiel installierte ich zuerst Mungo, die natürlich eine Reihe von Abhängigkeiten installiert. Dann habe ich das mongodb-Paket installiert, das auch mit bson als Abhängigkeit kam. Aufgrund Abhängigkeiten überlappen, habe ich die folgende Anomalie:
MongoDB in den folgenden Verzeichnissen vorhanden ist:
/usr/local/lib/node_modules/mongodb/
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/
Auch BSON, eine Abhängigkeit von mongodb in diese beiden vorhanden ist:
/usr/local/lib/node_modules/mongodb/
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/
Ich weiß, dies sind nur Dateien von Kilobyte, aber ich glaube, das könnte eine Menge Redundanz Ende ich könnte am Ende mit einem sehr komplexen Baum ähnlich dem folgenden:
/usr/local/lib/node_modules/[something1]/node_modules/[something2]/node_modules/[something3/.../.../node_modules/[somethingX]/
In diesem Szenario kann eine gegebene [Abhängigkeit] auf X-Ebenen unter/usr/local/lib/node_modules vorhanden sein.
Mein Hauptproblem betrifft die Aktualisierung dieser Module. Ich kann mir nicht vorstellen, dass gleichzeitige Module verschiedener Versionen gleichzeitig installiert sind.
Wäre es nicht einfacher, alles direkt in/usr/local/lib/node_modules/zu setzen und dann Abhängigkeiten zu referenzieren?
Erzeugt das nicht eine hektische Hierarchie, nachdem Sie eine Reihe verschiedener Module installiert und eine Reihe verschiedener Projekte gestartet haben? Gibt es eine Möglichkeit, ein rekursives Update mit NPM auszuführen? – zcserei
Wenn Menschen winzige Module programmieren, die eines Tages fertig sein werden, anstatt große Module, die immer aktualisiert werden, wird nur eine Kopie des Moduls installiert. Es stellt sich heraus, dass es in Wirklichkeit kein großes Problem ist, da die meisten Knotenmodule winzig sind und wenn sie nicht für eine Weile Substack (James Halliday - http://substack.net/) hören dann bin ich überzeugt, die kleine Philosophie auch zu übernehmen :) Vor einiger Zeit postete ich einige Gedanken zu diesem genauen Thema hier: https://gist.github.com/balupton/5308717 vielleicht wird es helfen, es dauerte ewig, bis ich dazu kam auch das :) – balupton
'wenn [beide] ... die gleiche [] Version zulassen ... wird nur eine Kopie installiert' Warum macht es das dann nicht? Ich habe einen speziellen Fall, in dem nur eine Kopie verwendet werden sollte, aber mehrere Kopien installiert werden, und es dauert sehr lange, weil ... nun, ich bin mir nicht sicher, warum, aber jede Installation dauert eine ganze Weile! – Michael