Ich habe eine Anwendung, die ein Webspiel-Server ist und sage zum Beispiel, ich habe node_modules, die ich im Verzeichnis ./ verwende und ich habe ein richtiges package.json für diese. es kommt vor, dass ich im Verzeichnis ./public/ eine Webseite habe, die selbst node_modules verwendet und auch eine eigene package.json für sich hat.
Ich weiß, dass ich dies durch Navigieren in den Verzeichnissen tun kann. Aber gibt es einen Befehl oder eine Möglichkeit, dies zu automatisieren, so dass es für andere Entwickler einfacher ist, die Anwendung in ihrem System zu starten?
Wenn Sie Linux / OSX verwenden, können Sie Folgendes versuchen:
find ./apps/* -maxdepth 1 -name package.json -execdir npm install \;
Argumente:
./ apps / * - der Pfad zum Suchen. Ich würde empfehlen, hier sehr genau zu sein, um zu vermeiden, dass package.json-Dateien in anderen node_modules -Verzeichnissen aufgenommen werden (siehe maxdepth unten).
-maxdepth 1 - Durchquere nur eine Tiefe von 1 (d. h. das aktuelle Verzeichnis - gehe nicht in Unterverzeichnisse) im Suchpfad
-name package.json - der Dateiname, der in der Suche verwendet werden soll
-execdir npm install \; - Führen Sie für jedes Ergebnis in der Suche npm install in dem Verzeichnis aus, in dem sich die Datei befindet (in diesem Fall package). json ). Beachten Sie, dass der umgekehrte Schrägstrich, der das Semikolon verlässt, in der JSON-Datei selbst maskiert werden muss.
Fügen Sie dies in den postinstall-Hook in Ihrem root package.json ein und es wird jedes Mal ausgeführt, wenn Sie eine npm-Installation :
ausführen %Vor%Bei plattformübergreifender Unterstützung (inkl. Windows) können Sie meine Lösung ausprobieren. Reine Node.js
Führen Sie es als "preinstall" npm-Skript
aus %Vor%