2017-04-06 4 views
0

Ich habe eine Anwendung, die für verschiedene Kunden verwendet werden kann, so muss ich es auf verschiedene Arten personalisieren, hängt vom Kunden ab.
Was ich im Grunde tun müssen, um ng bauen nicht immer mit den gleichen Einstellungen in Winkeln cli.json Datei zu starten, ist es eine Möglichkeit zu:

1) Ändern Winkel cli.json Datei, wenn ich das starten bauen?
2) Übergeben Sie eine Variable, um die Felder 'styles' und 'dist' zu ändern?

Im Moment bin ich gezwungen, mich daran zu erinnern, jedes Mal, wenn ich eine Änderung an meiner App mache, die Datei für jeden Kunden zu ändern und einen Build zu machen, würde ich gerne ein Skript schreiben, das alle Builds in Kaskade macht, aber ist unmöglich, wenn ich angular-cli.json abhängig vom Aufbau nicht personifizieren kann.Verschiedene Winkel-Cli Json oder Pass Variablen

UPDATE

Ich habe dies link gefunden, aber wie es zu benutzen? Ich habe in der Dokumentation here gesucht, aber ich verstehe nicht, musste ich eine Stimme unter App-Array in anguylar-cli.json hinzufügen? Oder muss ich ein anderes Array ähnlich der App machen?

UPDATE 2

das ist, was ich unter Anwendungen haben:

{ 
    "name":"app1", 
    "root": "src", 
    "outDir": "dist", 
    "assets": [ 
    "fonts", 
    "images", 
    "assets", 
    "favicon.ico" 
    ], 
    "index": "index.html", 
    "main": "main.ts", 
    "test": "test.ts", 
    "tsconfig": "tsconfig.json", 
    "prefix": "app", 
    "mobile": false, 
    "styles": [ 
    "paper.css", 
    "styles.css", 
    "style_app1.css" 
    ], 
    "scripts": ["../node_modules/chart.js/dist/Chart.bundle.min.js"], 
    "environments": { 
    "source": "environments/environment.ts", 
    "dev": "environments/environment.ts", 
    "prod": "environments/environment.prod.ts" 
    } 
}, 
{ 
    "name":"app2", 
    "root": "src", 
    "outDir": "dist2", 
    "assets": [ 
    "fonts", 
    "images", 
    "assets", 
    "favicon.ico" 
    ], 
    "index": "index.html", 
    "main": "main.ts", 
    "test": "test.ts", 
    "tsconfig": "tsconfig.json", 
    "prefix": "app", 
    "mobile": false, 
    "styles": [ 
    "paper.css", 
    "styles.css", 
    "style_app2.css" 
    ], 
    "scripts": ["../node_modules/chart.js/dist/Chart.bundle.min.js"], 
    "environments": { 
    "source": "environments/environment.ts", 
    "dev": "environments/environment.ts", 
    "prod": "environments/environment.prod.ts" 
    } 
} 

zu sagen, dass es nicht, dass es funktioniert, weil in dist2 ich nichts whent i --app ng bauen starten gefunden app2

Antwort

1

Die Datei .angular-cli.json hat eine Eigenschaft apps, die ein Array ist, das mehr als eine App haben kann. Standardmäßig generiert ng nur einen Eintrag gibt, zum Beispiel:

{ 
    "root": "src", 
    "outDir": "dist", 
    "assets": [ 
    "assets", 
    "favicon.ico" 
    ], 
    "index": "index.html", 
    "main": "main1.ts", 
    "polyfills": "polyfills.ts", 
    "test": "test.ts", 
    "tsconfig": "tsconfig.app.json", 
    "testTsconfig": "tsconfig.spec.json", 
    "prefix": "app", 
    "styles": [ 
    "styles.css"], 
    "scripts": [], 
    "environmentSource": "environments/environment.ts", 
    "environments": { 
    "dev": "environments/environment.ts", 
    "prod": "environments/environment.prod.ts" 
    } 
}, 

Der obige Apps Abschnitt definiert eine App, die main1.ts der Bootstrap-Code enthält. Wenn Sie eine andere App in demselben Projekt haben, in der sich der Bootstrap-Code in main2.ts befindet, müssen Sie die obige Konfiguration wiederholen, aber mit "main" = "main2.ts". Jetzt haben Sie ein Array von zwei Apps und Sie können eines erstellen, indem Sie einen entsprechenden Array-Index verwenden, z.

ng build --app 0 

oder

ng build --app 1 

Sie können eine Eigenschaft "Name", um die App-Konfiguration hinzufügen, zum Beispiel

"apps": [ 
    { "name":"app1", 
     "root": "src", 
     "outDir": "dist", 
     ... 

und die Build laufen wie folgt:

ng build --app app1 
+0

ich getan habe, wie Sie sagen, aber es funktioniert nicht. – mautrok

+0

Funktioniert nicht wie? Was ist die Fehlermeldung? Stellen Sie sicher, dass Sie Angular CLI 1.0.0 –

+0

keine Fehlermeldung verwenden, einfach scheint es zu ignorieren meine Änderungen – mautrok