Ich versuche, ein npm-Paket mit mehreren Abhängigkeiten zu ändern. Daher npm install -g .
dauert die Ausführung sehr lange. Habe ich neben dem Entfernen der Abhängigkeiten aus packages.json noch andere Optionen?
Die Option --no-optional ist jetzt gemäß der folgenden Dokumentation implementiert : https://docs.npmjs.com/cli/install :
The --no-optional argument will prevent optional dependencies from being installed.
In den Dokumenten scheint es keine Option zu geben, die über den --no-optional
Schalter hinausgeht .
Diese SO Q & A mit dem Titel: npm install
Installiert alle Abhängigkeiten meines Projekts über das Netzwerk, auch wenn sie bereits installiert sind oder aus dem Cache verfügbar sind. Dies scheint zu implizieren, dass ein --skip-installed
Schalter vorhanden ist. Die Dokumentation bezieht sich jedoch nicht auf diesen Schalter.
Wenn Sie das node_module
selbst entwickeln, verschwenden Sie Ihre Zeit nicht mit npm install
s, sondern verwenden Sie stattdessen npm link
.
Kurz gesagt, Sie erstellen eine symbolische Verknüpfung zu Ihrem Modulordner in einem globalen Ordner, der npm gehört, und fordern dann npm in Ihrem App-Ordner auf, diesen symbolisch verknüpften Ordner zu verwenden.
Dadurch werden Änderungen, die Sie im Modulordner vornehmen, sofort in Ihre App übernommen.
Hier sind die wichtigsten Schritte:
src/my_module
npm link
" aus. Dadurch wird eine symbolische Verknüpfung von einem globalen Ordner zu dem src/my_module
Ordner erstellt.src/my_app
npm link my_module
. Hiermit wird node_modules/my_module
in diesem Projekt eine Verknüpfung zum globalen Ordner hergestellt, sodass require
Aufrufe, die nach dem Auflösen suchen my_module
, diesen Ordner aus Ihrem Entwicklungsordner laden
src/my_module
.Siehe dieses Tutorial: http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears
Und die offiziellen Dokumente für npm link
: https://docs.npmjs.com/cli/link
Diese Funktion wurde bereits 2010 angefordert, aber leider ignoriert und geschlossen: https://github.com/npm/npm/issues/340
Ich habe eine Reihe von Optionen ausprobiert und schließlich eine ziemlich einfache Lösung gefunden: Benenne package.json vor der Installation von doint npm in etwas anderes um und stelle es nach Abschluss der Installation wieder her:
quelle
--ignore-package
oder so geben.