Yarn: Funktionsanforderung: Zentralisierter Ordner node_modules

Erstellt am 29. Nov. 2016  ·  4Kommentare  ·  Quelle: yarnpkg/yarn

Gibt es eine Möglichkeit, alle npm-Abhängigkeiten global (zentral) zu installieren, damit Sie node_modules nicht im Projektordner speichern?

Dies verursacht Probleme, da das Framework, für das ich arbeite, ziemlich umfangreich ist und ich über 40 Projekte mit jeweils einem eigenen Ordner node_modules habe, der mit Millionen von 1-KB-Dateien gepackt ist.

Dies nimmt überraschend viel wertvollen Speicherplatz auf meiner SSD ein und es wäre wirklich schön, wenn ich diese Pakete nur einmal installieren könnte, wobei die package.json eines Projekts mit meinem lokalen Repository verknüpft ist

cat-feature help wanted needs-discussion

Hilfreichster Kommentar

https://github.com/rstacruz/pnpm macht genau das. Verwendet die Knotenfunktion --preserve-symlinks .

Alle 4 Kommentare

@alshdavid Dinge, die Sie require sind Abhängigkeiten und müssen lokal installiert werden. Globale Module sind für nicht projektspezifische Befehlszeilentools.

Imo ist dies nicht wirklich eine Garnfrage, es sei denn, Garn bietet eine Möglichkeit, globale Module mit dem lokalen Verzeichnis zu verknüpfen. Ich habe verstanden, dass dies mit dem npm-Ökosystem nicht funktionieren würde.

Ich denke, das wäre nützlich. Das Problem ist, dass es schwierig ist, die Vorgehensweise zu ändern, ohne Node.js zu ändern, da Node.js erwartet, dass die Aufgaben auf eine bestimmte Art und Weise ausgeführt werden und die Module auf eine bestimmte Art und Weise angeordnet werden. 😞 Ich würde das Verzeichnis auch gerne von node_modules in etwas anderes umbenennen, da nicht jeder Node.js verwendet.

Es gibt einige GitHub-Probleme mit Symlinks und Hardlinks als mögliche Lösung für Leistung und Speicherplatz - # 499 behandelt Hardlinks. Die Dateien würden jedoch immer noch etwas Speicherplatz im Dateisystem beanspruchen. Ich denke, ein Copy-on-Write-Dateisystem wie BTRFS oder ZFS würde auch dabei helfen, da die Dateien nicht tatsächlich kopiert werden und stattdessen nur auf die Originaldateien im Cache-Verzeichnis verweisen.

https://github.com/rstacruz/pnpm macht genau das. Verwendet die Knotenfunktion --preserve-symlinks .

Das nächstgelegene scheint # 499 zu sein, also schließe ich dieses dafür.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen