Gibt es eine Option, um ein npm-Paket ohne Abhängigkeiten zu installieren?

20

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?

Justin Dearing
quelle

Antworten:

18

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.
jurevert
quelle
7

In den Dokumenten scheint es keine Option zu geben, die über den --no-optionalSchalter hinausgeht .

Ungetestet / unbestätigt

Diese SO Q & A mit dem Titel: npm installInstalliert 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-installedSchalter vorhanden ist. Die Dokumentation bezieht sich jedoch nicht auf diesen Schalter.

slm
quelle
7

Wenn Sie das node_moduleselbst entwickeln, verschwenden Sie Ihre Zeit nicht mit npm installs, 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:

  1. CD zu src/my_module
  2. Führen Sie " npm link" aus. Dadurch wird eine symbolische Verknüpfung von einem globalen Ordner zu dem src/my_moduleOrdner erstellt.
  3. CD zu src/my_app
  4. Rennen npm link my_module. Hiermit wird node_modules/my_modulein diesem Projekt eine Verknüpfung zum globalen Ordner hergestellt, sodass requireAufrufe, 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

Marmor
quelle
Ich ändere meine akzeptierte Antwort nicht, sondern stimme zu, weil dies für meinen speziellen Fall nützlich ist.
Justin Dearing
3

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:

mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json
Vitaliy Ulantikov
quelle
2
Wow, ist das im Ernst noch der einzige Weg? Das ist lächerlich, es sollte eine Flagge --ignore-packageoder so geben.
JacobTheDev
1
Diese Lösung ist gut und soweit die beste Lösung für meine Frage: stackoverflow.com/questions/53532845/…
aGuegu