8

どうすれば角型ビルドを使用すれば、特定の環境ごとにビルドする必要はありませんか?角型プロジェクトのビルドを再利用する方法

実行時に環境を操作する方法を見つける必要があります。

各環境の設定があります。NGビルド--env = devを使用し、開発環境用にビルドします。 QA、UAT、本番環境の設定を変更するにはどうすればよいですか?

ツールセット:.NETのVisual Studio Team Servicesを、2

、実行時にこれを行う方法はありませんアンギュラ?私たちはビルド時間/設計時間にこだわっていますか?

また、私たちのURLに基​​づいて環境を選択することも考えられます。 https://company-fancyspawebsite-QA .azurewebsites.net

PS:私たちは、環境ごとに角度2つの環境フォルダとアプリの設定ファイルを使用しています。私は、実行時に編集可能なコンフィグ設定を供給するために構成サービスを使用し

enter image description here

enter image description here

enter image description here

+1

環境ごとにどのような角度構成ですか? 詳細を共有できますか? –

+0

[this](https://github.com/angular/angular-cli/issues/7506)、[this](https://github.com/angular/angular-cli/issues/3855)と[this ](https://github.com/angular/angular-cli/issues/2508#issuecomment-257988755)を参照してください。 –

+0

Angular 2環境フォルダを使用し、環境ごとにファイルを設定しています。 –

答えて

4

config.service.ts

import { Injectable } from '@angular/core'; 
import { Http, Headers, RequestOptions, Response } from '@angular/http'; 

export interface Config { 
    PageSize: number; 
    EnableConsoleLogging: boolean; 
    WebApiBaseUrl: string; 
} 

@Injectable() 
export class ConfigService { 
    private config: Config; 

    constructor(private http: Http) { } 

    public getConfigSettings(): Config { 
     if (!this.config) { 
      var Httpreq = new XMLHttpRequest(); 
      Httpreq.open("GET", 'config.json', false); 
      Httpreq.send(null); 

      this.config = JSON.parse(Httpreq.responseText); 

      if (this.config.EnableConsoleLogging) 
       console.log("Config loaded", this.config); 
     } 

     return this.config; 
    } 
} 

私のsrcフォルダにありますconfig.json

{ 
    "WebApiBaseUrl": "http://myWebApi.com", 
    "EnableConsoleLogging": true, 
    "PageSize": 10 
} 

が.angularであなたの資産にconfig.jsonを追加(これは角度-CLIを使用しています)

それを

を使用する方法
{ 
    }, 
    "apps": [ 
    { 
     "assets": [ 
     "config.json" 
     ] 
    } 
    } 
} 

-cli.json

export class MyComponent { 
    private config: Config; 

    constructor(private configService: ConfigService) { 
     this.config = configService.getConfigSettings(); 

     console.log(this.config.WebApiBaseUrl); 
    } 
} 
+0

これを読んですぐに検討してください。 –

+0

回答としてマークすることができません。職場の友人は、これを使用してランタイム変数を挿入するための単一のCI定義を持つことは不可能です。彼をPoCとして見せてくれるサンプルの角度プロジェクトをアップロードするのはすばらしいことです。 –

+0

問題はありません。ここにはGITがあります:https://github.com/medeirosrich/ConfigExampleデベロッパーをビルドしてdistファイル内のconfig.json出力を編集でき、実行時に設定が取得されるかどうかに関係なくこれまでどこに展開するか選択します。 –

関連する問題