2017-05-13 5 views
0

アドバイスをお願いします。 私は角度アプリを開発しており、角度cliを使用しています。このアプリケーションは、IISサーバーの1つにデプロイされます。角プロダクションファイルは、同じフォルダー内のweb.config(.NET)ファイル内にあります。 Angularプロダクションビルドのweb.configファイルからいくつかの変数(OAuth paramsやproxy config urlなど)を読みたいと思っています。どのように実装することができますか?ありがとうございますアングルCLIで構築されたアングル2アプリを起動する前に "config file"から設定変数を読み込んでください

答えて

0

残念ながら、web.configはサーバーサイドアプリケーション専用ですので、追加のサーバーサイドコード(ドットネットアプリケーション内でのホスティングやWeb API経由の設定公開など)は必要ありません。

すぐに使用できる@angular/cliは、コンパイル時のプロパティ設定を使用します。これは、イライラして問題になる可能性があります(キーを展開可能なコードにバンドルし、必要に応じてパッケージを再構築する必要があります)。環境間の変更)。

この問題を回避する最も一般的な方法は、環境固有のファイルconfig.jsonを作成し、展開時に上書きする方法です。したがって、たとえば、あなたが持っているでしょう:

  • dev.config.json
  • test.config.json
  • prod.config.json

そしてデプロイ時にあなただけのconfig.jsonの上に右のファイル名を変更しますし、あなたにそれにリンクをindex.html。

これは設定を別のファイルに複製することを意味しますが、これは問題を解決する最も便利な方法です。実行時にある程度柔軟に変更することができますキャッシュされた)。

+0

あなたの答えをありがとう!現時点では、.Net Core "empty"アプリを作成し、Angular 2を追加することを検討しています。このアプリケーションはIISサーバーから提供されます。あなたが言いましたことをどのように実装できるか聞いてもらえますか?web.configはサーバーサイドアプリケーション専用です。追加のサーバーサイドコードなしで(dotnetアプリケーション内でのホスティングやWeb API経由の設定公開など)本当に可能ではありません。私は.Net環境ではかなり新しいです。 – marekdano

+0

もちろん、web.configの値を読み込んで角度アプリに返すWeb APIメソッドを追加するだけです。角度のあるアプリは起動時にそのメソッドへのhttp呼び出しを行わなければなりません。 – mikegeyser

+0

ありがとうございました。 .Netの人にそれを見てもらう必要があります。私もあなたが言及した第二のアプローチで遊んでいる。 WebAPIはAngularアプリと同じドメインにはありません。私の開発では、私は角度cliのプロキシを使用して – marekdano

1

角度アプリの設定、パック、バンドルの詳細を制御する必要がある場合は、を取り出そうとするとよいでしょう。

これは、ngプロジェクトのデフォルト設定でwebpack設定ファイルを生成します。その後、ビルドの前に変数とパラメータを変更することができます。

これは、cliのngコマンドの使用を無効にします。

(あなたは角度-cli.jsoneject: falseeject: trueを変更する場合は再活性化することができる。しかし、NGコマンドは常にWebPACKの設定ファイルを無視します)

関連する問題