2017-01-27 3 views
1

ビルド時に何かを評価し、それをアプリケーションに追加する方法はありますか?angle-cliを使用してアプリケーションにビルド時の環境変数を追加するにはどうすればよいですか?

ユースケース:

以前はgulpでアプリケーションを構築していました。あなたのような何かを実行することができます:

git rev-parse --short HEAD 

をそして、あなたはアプリケーションにそれを追加するためにgulp-replaceを使用することができます。

const GIT_VERSION = "{GIT_VERSION}"; 

そして最後に、コンパイルされたアプリケーションは、次のようになります。

const GIT_VERSION = "59e5722"; 

angular-cliは、これを実現するために何かを提供しています。

答えて

0

あなたの質問を正しく理解している場合、Angular2 CLIのenvironmentファイルを調べましたか? ( - -environment=prod--environment=devまたは)

ng buildはそのビルドで使用するビルドターゲット(--target=productionまたは --target=development)と環境ファイルの両方を指定することができます。デフォルトでは、 開発ビルドターゲットと環境が使用されます。

使用されている環境ファイルを決定するために使用されるマッピングは、角度-cli.jsonで見つかった することができ

:あなたが必要な値でこれらのファイルを変更する

"environments": { 
    "source": "environments/environment.ts", 
    "dev": "environments/environment.ts", 
    "prod": "environments/environment.prod.ts" 
} 

静的ソリューション

ビルド時にそれぞれのビルドにそれらを組み込みます。

例えば、environment.dev.tsは次のようになります。

export const environment = { 
    production: false, 
    apiUrl: 'http://dev-api.mysite.com/v1/', 
    loggingEnabled: true, 
    environmentName: 'Development' 
}; 

ダイナミックソリューション

何か少しより堅牢な/ダイナミックを探しているなら、あなたは使用することができますプラグインのようなreplace-in-file、環境ファイルと一緒に、How to insert a Build Number or Timestamp at build time in AngularCLIVolodymyr Bilyachatのブログ投稿Angular 2 - Manage application versionの受け入れられた答えで最もよく記述されています。

export const environment = { 
    production: false, 
    version: '{BUILD_VERSION}', 
    apiUrl: 'http://dev-api.mysite.com/v1/', 
    loggingEnabled: true, 
    environmentName: 'Development' 
} 
+1

動的ソリューションは、私が探していたものとまったく同じでした。ありがとう – David

関連する問題