2017-11-22 2 views
1

Ich habe meine App in zwei Apps aufgeteilt: "app"/"app2" und ich baue sie unabhängig voneinander. Sie haben ihr eigenes Modul und ihre eigenen index.htmlAngular-cli: Index Outdir Pfad mit mehreren Apps und Indizes

Mein Problem ist, dass, wenn ich "app2" erstellen der Ausgabepfad von index.html ist nicht die Wurzel des Build-Ordners.

Hier ist meine angular-cli.json für app2:

"name": "app2", 
    "root": "src", 
    "outDir": "dist-app2", 
    "index": "./app/modules/app2/index.html", <-- location of my index 
    "main": "./app/modules/app2/main-export.ts" 

Wenn ich baue ich einen Weg: build-app2/app/modules/export/index.html, wenn ich es an der Wurzel sein wollen: build-app2/index.html

Ich weiß, wie dies zu tun mit webpack aber ich würde es vorziehen, nicht auszuwerfen und ich bin mir ziemlich sicher, dass es direkt mit dem cli gemacht werden kann, aber nicht herausfinden kann wie.

Ich versuchte ./app/modules/export/index.html und app/modules/export/index.html aber die Ergebnisse sind die gleichen.

Es gab eine Diskussion über Github here, aber am Ende hat niemand eine funktionierende Lösung zur Verfügung gestellt.

Antwort

0

Ich habe hier 2 Antworten gegeben, aber die Diskussion läuft noch weiter in this thread on the angular-cli repository also schauen Sie sich hier auch mal an, wir werden wahrscheinlich irgendwann eine bessere Lösung finden.

Neue Antwort Mehr wartbar und im Einklang mit der angular-cli Art der Handhabung eines Multi-Apps-Setup.

Nach einigen Commits auf dem Winkel cli Repo Lesen ich über die appRoot Optionen in der angular-cli.json Konfigurationsdatei fand heraus, es erlaubt mir auch Komponenten zu erzeugen für jede App die cli in den richtigen Ordnern verwenden und fügen Sie sie nach rechts Modul:

"name": "app2", 
    "root": "src/modules/app2", 
    "appRoot": "." 
    "outDir": "dist-app2", 
    "assets": ["assets"], 
    "index": "index.html" 

dies ermöglicht es mir, Dinge wie ng g c components/new-component --app app2 zu tun, die eine neue Komponente in src/modules/app2/components/new-component generieren und app2.module.ts entsprechend aktualisieren, habe ich einige Dateien und Ordner zu kopieren, aber am Ende ist es Weise besser verwaltbar und leichter zu verstehen. Hoffentlich werden die Winkel-cli docs wird in Kürze mit einem Verweis auf appRoot

bearbeiten aktualisiert: alte Antwort

ich es geschafft, das Problem zu umgehen, ist hier, wie:

  • ich meine Wurzel geändert Ordner für "app2", so dass der Index direkt im Stammverzeichnis wäre
  • Ich habe alle anderen Pfade (Polyfills, Assets, Ts.config etc ...) relativ zum Stammordner Pfad benötigt

Meine angular-cli.json Datei nun wie folgt für "app2" aussieht:

"name": "app2", 
    "root": "src/app/modules/app2", <-- new root 
    "outDir": "dist-app2", 
    "assets": ["../../../assets/i18n"], <-- relative path to root 
    "index": "index.html", <-- index.html is now directly in root 
    "main": "main-export.ts", <-- so is my main file // optional though 
    "polyfills": "../../../polyfills.ts", <-- relative path to root 
    "tsconfig": "../../../tsconfig.app.json", <-- relative path to root 
    "testTsconfig": "../../../tsconfig.spec.json", <-- relative path to root 
    "styles": ["../../../scss/modules/export.scss"], <-- relative path to root 
    "scripts": [], 
    "environmentSource": "../../environments/environment.ts", <-- relative path to root 

Struktur Mein Ausgabeordner ist jetzt normal:

dist-app2/index.html

Verwandte Themen