2016-09-21 7 views

答えて

9

v1.0.0あなただけが、次のコマンドで構築したいアプリを選択することができます。

ng build -a appName

または

ng build --app appName

あなたはまた、それぞれに nameプロパティを追加する必要があります。要素が apps配列にあるので、次のようになります。

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

も、あなたはアプリ名を指定する必要はありません、その場合にはng build -a 0またはng build -a 1のようなアプリのインデックスを使用することができます。角度-CLI sorcesから

あなたは同じで、すべてのアプリケーションを構築することはできませんので、あなたが、そうでない場合apps[0]が使用されるインデックスのアプリ名のいずれかを指定する必要がありますいずれか1つのコマンドですべてのアプリケーションを実行する可能性がないことがわかります1つのng buildコールを使用しています。

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

のMakefileを整理することができます:

5

angular-cliソースコードを検索しましたが、配列としてappsの内容を反復または検査するコードへの参照が見つかりませんでした。

今のところ(angular-cliバージョン1.0.0-beta.15)、appsを扱うコードのすべてのインスタンスは、ハードコードされた配列の最初の要素(apps[0])を使用します。配列の最初の要素を使用するデフォルトの動作を構築または変更するためのアプリを選択する方法はありません。このプロジェクトでは、さまざまなアプリケーションの

プロパティ:

apps要素のためのJSONスキーマは、それをこのように説明しています。

/** 
* 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; 
    }; 
}[]; 
同じコードベースから複数のアプリケーションを構築する支援するプロジェクトの将来の意図のようですが、それは今なんとか何かであるようにそれが見えない

(1.0.0-beta.15バージョン)。現在

+0

わかりました。私は、近い将来、angle-cli開発者が実装することを希望して質問を開いたままにします。 – Readren

+1

私はangry-cliのドキュメントが不足しているのを発見しました – Kamaruni

+0

@Kamaruni私もそうだと思います。私が望むのは、彼らが時間の経過とともに、特に角度2決勝戦が終わった今、それをより良くすることです。少なくともGithubのページがあります:https://github.com/angular/angular-cliそしてWikiを忘れないでください:https://github.com/angular/angular-cli/wiki –

2

はまだ1つのコマンドですべてのアプリケーションを構築するためにng build --appのための任意のフラグがない、これを解決するように最善の方法は、プロジェクトのルートにのMakefileファイルを作成することですあなたが提供した指示に従ってコードをコンパイルしてください。 したがって、すべてのアプリケーションのフロントエンドを出力ディレクトリに構築するよう指示する必要があります。上記のあなたが

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 

しかし後に、コピー&ペーストコード、タブの中にスペースを変更します。 今Makefileファイルは、次のようになります。それ以外の場合は無効なMakefileを取得します*** missing separator error

ルートプロジェクトに移動してテストするには、端末にmakeと入力するとヘルプメッセージが表示されます。その後、タイプ:

make build-frontend 

これで、複数のアプリケーションが1つのコマンドでビルドされました。

関連する問題