2017-01-03 5 views
0

プロダクションビルドを作成すると、クライアントはすべてのファイルを縮小します。Angular cliはファイルを無視します。

クライアントがエンドポイント変数を配置できる特定のファイルを除外したいと思います。

ありがとうございます。

+1

これらの設定方法と理由について詳しく教えてください。 QAのAPIエンドポイントとPRODのAPIエンドポイントはありますか?環境ごとに複数のバリエーションが存在するか、環境ごとにバリエーションが1つだけありますか?これは環境ファイルで処理できるものですか?変数を含むJSファイルをangular-cli.jsonの "scripts"配列に追加しようとしましたか? – Martin

+0

基本的に私は、Web APIのエンドポイントを持つ多くの静的変数を持つSettings.tsを持っています。私はprodにビルドするときはいつでも、クライアントはエンドポイントを自分の環境に合わせて変更できるように、このファイルを変更しないことを望みます。 –

答えて

2

解決方法は、このファイルをangle-cliパイプラインから移動することです。 settings.jsに名前を変更し、assetsフォルダに配置します。アンギュラcli.json

でスクリプトアレイにこのファイルを追加window.ENDPOINT =「/いくつか/終了/ポイント」

:このファイルで

グローバルDOMウィンドウのプロパティとしてのエンドポイントを公開

アプリケーションで、window.ENDPOINTからエンドポイントを持ち込みます。

このセキュリティの意味を考慮してください。攻撃者があなたのアプリにスクリプトを挿入することができれば、エンドポイントを変更することができます。

更新

別のオプションは、あなたの資産ディレクトリ内にJSONファイルに追加することです。

例:その後、資産/ settings.json

{ 
    "endpoint": "http://someUrl" 
} 

アプリケーションが起動し、/assets/settings.jsonを要求すると、アプリケーションのAPIエンドポイントを設定します。

、彼らがエンドポイントを更新した後、別の方法としては、4つ目のオプションは以下のようになりng build --prod

あなたのクライアントは、ソースからビルドする可能性があります:あなたのクライアントは、エンドポイントの静的な数(DEV、QA、UAT、PROD)を持っている場合のことができます。それらを環境ファイルに格納し、環境ごとにビルドを自動化(およびビルドを提供)します。

+0

ありがとうございました。このソリューションは危険であると判断しているため、アプリをクライアントに処理する他のオプションを推奨できますか?エンドポイントを希望通りに変更できますか? –

+1

私は自分の答えを更新しました。 – Martin

+0

素晴らしい答え。このようなあいまいな質問に感謝してくれてありがとう:) –

関連する問題