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?

Antworten:




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


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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.