2016-08-29 7 views
0

Ich bin auf der Suche nach einem guten Weg für den Aufbau einer Multi-Projekt-Anwendung.grunt build nodejs - mehrere Projekte

Im Moment habe ich diese Struktur: Jede App ist eine NodeJS Anwendung

- parent folder (git root) 
|- app1 
|-- app1-backend 
|-- app1-frontend 
|- app2 
|- app3 

im Moment i jede App von Hand mit den folgenden Schritten installieren muß:

  1. installieren npm Module mit npm install
  2. installieren Sie Typings mit typings install
  3. kompilieren Sie App mit tsc

jeder App-Ordner enthält die folgenden: (app1-Backend, app1-Frontend, app2, app3)

tsconfig.json, package.json, typings.json 

sollte ich das mit Grunzen automatisieren? Sollte ich für jedes Projekt eine eigene Gruntdatei verwenden?

begrüßt

Antwort

0

Da es bereits 3 selbst Befehle enthalten sind, können Sie wahrscheinlich erhalten, indem mit nur ein Skript im package.json jedes Projekt hinzufügen, die alle Griffe es Befehle bauen, das heißt:

{ 
    "name": "project-name", 
    ... 
    "scripts": { 
    "build": "npm install && typings install && tsc" 
    } 
} 

Damit können Sie einfach npm run build ausführen, um alle 3 Befehle für ein bestimmtes Projekt auszuführen.

Dann können Sie einfach (cd /path/to/project1 && npm run build) & (cd /path/to/project2 && npm run build) & (cd /path/to/project3 && npm run build)

laufen Welche alle drei gleichzeitig bauen.

Anmerkung: Ich gehe davon aus npm werden mehrere Prozesse handhaben, aber Sie können nacheinander ausgeführt werden müssen

Es ist möglich, Grunzen zu verwenden, was Shell-Befehle wie mit grunt-shell zu laufen; Für mich persönlich ist es jedoch nicht sinnvoll, in einem Projekt einen Buildprozess zu erstellen, der ein anderes Projekt erstellen lässt.

+0

sry ich habe vergessen zu erwähnen, dass ich browserify auf dem app1-frontend-projekt verwende. Kann ich das auch auslösen? ich starte browserify direkt nach dem tsc –

+0

Sie sollten, fügen Sie einfach ein anderes "&& [Befehl]" zu dem Skript, das Sie zu Ihrem Paket.json für dieses Projekt hinzufügen. Der Kern dessen, was Sie tun, besteht darin, eine Gruppe von Befehlen für jedes Projekt als einen einzelnen Befehl auszuführen und dann eine Gruppe dieser Befehle auszuführen. Solange die Befehle diejenigen sind, die ein endgültiges Ende der Ausführung haben, können Sie beliebig viele von ihnen verketten. Das heißt, solange einer der Befehle nicht zu sagen ist. Ein Watch-Befehl, der auf eine Dateiänderung wartet, sollte in Ordnung sein –