Ich habe eine Anwendung, die die üblichen Abhängigkeiten von Modulen von Drittanbietern (z. B. 'Express') aufweist, die in der Datei package.json unter Abhängigkeiten angegeben sind. Z.B
"express" : "3.1.1"
Ich möchte meinen eigenen Code modular strukturieren und eine Reihe lokaler (dh auf dem Dateisystem, in dem ich mich gerade befinde) Module von package.json installieren lassen. Ich weiß, dass ich ein lokales Modul installieren kann, indem ich Folgendes ausführe:
npm install path/to/mymodule
Ich weiß jedoch nicht, wie ich dies über die Abhängigkeitsstruktur package.json erreichen kann. Wenn Sie die --save
Option in diesem Befehl verwenden, wird sie einfach "mymodule": "0.0.0"
in meine package.json eingefügt (verweist nicht auf den Speicherort des Dateipfads). Wenn ich dann die installierte Version aus node_modules entferne und versuche, sie erneut aus der package.json zu installieren, schlägt dies fehl (weil sie in der zentralen Registrierung nach "mymodule" sucht und nicht lokal sucht).
Ich bin sicher, dass dies eine Möglichkeit ist, der "dependencies": {}
Struktur mitzuteilen , dass sie über einen Dateisystempfad installiert werden soll, aber ich weiß nicht wie.
Hat noch jemand dieses Problem gehabt? Vielen Dank.
package.json
, was wir inGemfile
s haben.Antworten:
npm install
unterstützt dies jetztDamit dies funktioniert,
mymodule
muss es als eigenes Modul konfiguriert seinpackage.json
. Siehe Erstellen von NodeJS-Modulen .Ab npm 2.0 werden lokale Abhängigkeiten nativ unterstützt. Siehe Danilopopeyes Antwort auf eine ähnliche Frage . Ich habe seine Antwort hier kopiert, da diese Frage in den Web-Suchergebnissen einen sehr hohen Stellenwert hat.
Aktualisieren von Updates
Seit dem
npm install
Kopierenmymodule
innode_modules
werden Änderungen inmymodule
der Quelle vom abhängigen Projekt nicht automatisch angezeigt.Es gibt zwei Möglichkeiten, das abhängige Projekt mit zu aktualisieren
Aktualisieren Sie die Version von
mymodule
und verwendennpm update
Sie dann : Wie Sie oben sehen können, enthält derpackage.json
Eintrag "Abhängigkeiten" keinen Versionsspezifizierer, wie Sie es für normale Abhängigkeiten sehen würden.npm update
Versuchen Sie stattdessen bei lokalen Abhängigkeiten nur sicherzustellen, dass die neueste Version installiert ist, wie durchmymodule
's festgelegtpackage.json
. Siehe die Antwort von chriskelly auf dieses spezielle Problem .Neu installieren mit
npm install
. Dadurch wird alles installiert, was sich im Quellpfad befindetmymodule
, auch wenn es älter ist oder ein alternativer Zweig ausgecheckt ist.quelle
"mymodule":"file:mymoduledir"
npm install --save ../my-local-repo
import { HelloWorld } from "my-test-lib";
, aber ich erhalte den Fehler "Cant find module". Bitte werfen Sie einen Blick auf stackoverflow.com/questions/46818083/…import { HelloWorld } from "my-test-lib";
Siehe: Lokale Abhängigkeit in package.json
Die Antwort lautet anscheinend
npm link
: https://docs.npmjs.com/cli/linkquelle
symlink
der Fall ist, wie kann das übergeordnete Projekt nach Abschluss der Erstellung der Abhängigkeit neu erstellen?local_modules
Am Ende konnte ich keinen ordentlichen Weg finden, also habe ich ein Verzeichnis mit dem Namen erstellt und dieses Bashscript der Datei package.json in scripts-> preinstall hinzugefügtquelle
Nachdem ich mit dem
npm link
Befehl viel zu kämpfen hatte (Lösungsvorschlag für die Entwicklung lokaler Module, ohne sie in einer Registrierung zu veröffentlichen oder eine separate Kopie im Ordner node_modules zu verwalten), habe ich ein kleines npm-Modul erstellt, um dieses Problem zu beheben.Das Update erfordert zwei einfache Schritte .
Zuerst:
Zweitens fügen Sie dies zu Ihrem hinzu
package.json
:Weitere Informationen finden Sie unter https://www.npmjs.com/package/lib-manager . Hoffe es hilft jemandem.
quelle
Wenn es akzeptabel ist, Ihre in node_modules vorinstallierten Module einfach zusammen mit Ihren anderen Dateien zu veröffentlichen, können Sie dies folgendermaßen tun:
Möglicherweise möchten Sie Ihr Modul auch auf git speichern und Ihrem übergeordneten package.json mitteilen, dass es die Abhängigkeit von git installieren soll: https://npmjs.org/doc/json.html#Git-URLs-as-Dependencies
quelle