2016-09-21 3 views

Antwort

9

Derzeit v1.0.0 Sie können nur App auswählen, die Sie durch den folgenden Befehl bauen wollen:

ng build -a appName

oder

ng build --app appName

Sie auch name Eigenschaft zu jeder hinzufügen müssen Element in der apps Array so haben Sie so etwas:

"apps": [ { "name": "app1", "root": "src/app1root", ... }, { "name": "app2", "root": "src/app2root", ... }, ... ]

auch können Sie App-Indizes wie ng build -a 0 oder ng build -a 1 in diesem Fall brauchen Sie nicht App-Namen angeben, verwendet werden.

Von angular-cli sorces können Sie sehen, dass es keine Möglichkeit gibt, alle Anwendungen in einem Befehl auszuführen, sollten Sie entweder Index entweder App-Name apps[0] wird verwendet werden, so dass Sie nicht alle Anwendungen gleichzeitig erstellen können Zeit mit einem ng build Anruf.

5

Ich suchte den Quellcode angular-cli, konnte aber keinen Verweis auf Code finden, der den Inhalt von apps als Array iteriert oder anderweitig untersucht.

Ab sofort (angular-cli Version 1.0.0-beta.15), jede Instanz von Code, der mit apps befasst verwendet das erste Element des Arrays einprogrammiert (apps[0]). Es scheint keine Möglichkeit zu geben, eine App zum Erstellen oder Ändern des Standardverhaltens der Verwendung des ersten Elements des Arrays auszuwählen.

Das JSON Schema für das apps Element beschreibt es so:

Eigenschaften der unterschiedlichen Anwendungen in diesem Projekt.

/** 
* Properties of the different applications in this project. 
*/ 
apps?: { 
    root?: string; 
    outDir?: string; 
    assets?: string; 
    index?: string; 
    main?: string; 
    test?: string; 
    tsconfig?: string; 
    prefix?: string; 
    mobile?: boolean; 
    /** 
    * Global styles to be included in the build. 
    */ 
    styles?: string[]; 
    /** 
    * Global scripts to be included in the build. 
    */ 
    scripts?: string[]; 
    /** 
    * Name and corresponding file for environment config. 
    */ 
    environments?: { 
     [name: string]: any; 
    }; 
}[]; 

Es ist eine Zukunft Absicht des Projektes zu sein scheint, den Aufbau mehr Anwendungen aus der gleichen Code-Basis zu unterstützen, aber es sieht nicht wie es ist etwas machbar jetzt (1.0.0-beta.15 Version ist).

+0

Ok, ich werde die Frage offen lassen, in der Hoffnung, dass die Angular-Cli-Entwickler es in naher Zukunft implementieren. – Readren

+1

Ich finde angular-cli Mangel an Dokumentation stören – Kamaruni

+0

@Kamaruni Ich denke schon. Ich hoffe, dass sie es mit der Zeit besser machen werden, besonders jetzt, da das Angular 2-Finale beendet ist. Es gibt zumindest die Github-Seite: https://github.com/angular/angular-cli Und vergiss das Wiki nicht: https://github.com/angular/angular-cli/wiki –

2

Noch gibt es keine Flagge für ng build --app alle Anwendungen mit einem Befehl zu bauen, so besten Weg, dies zu lösen, ist Makefile Datei im Wurzel-Projekt zu erstellen:

my-app 
    --dist/ 
    --e2e/ 
    --src/ 
    .angular-cli.json 
    package.json 
    Makefile 

Makefiles erlaubt zu organisieren Codekompilierung gemäß den von Ihnen bereitgestellten Anweisungen. Also müssen wir Anweisungen zum Erstellen von Frontend für alle Anwendungen in einem Ausgabeverzeichnis bereitstellen. Jetzt Makefile sieht wie folgt aus:

help: 
    @echo "_______BUILD ANGULAR FRONTEND______\n" 
    @echo "To build all apps run make make build-frontend" 

build-frontend: 
    ng build -a=0 &&\ 
    ng build -a=1 

jedoch nach dem Kopieren-Einfügen-Code oben, ändern Räume in Tab.Andernfalls erhalten Sie ungültige Makefile mit *** missing separator error

Navigieren Sie zu Root-Projekt und nur zu testen, geben Sie make in Terminal und Sie sollten Hilfe Nachricht gedruckt bekommen. Nach diesem Typ:

make build-frontend 

Jetzt haben Sie mehrere Anwendungen mit nur einem Befehl erstellen.

Verwandte Themen