いくつかのブログ記事があります。これは、gruntやgulpからnpmだけの建物への切り替えが良い例です(Cory HourseまたはKeith Cirkleなど)。これらのブログの投稿で説明していないことの1つは、環境設定を簡単に行う方法です。たとえば、一般的な要件は、異なるREST APIの場所を持つことです。開発中にサーバーはlocalhost:8080
で実行されている可能性がありますが、運用時には/api
または/rest/api
などの相対URLを使用してアクセスする必要があり、ポートまたはプロトコルは開発および生産のために異なります。構築時の環境設定npm
これにはいくつかの解決策があります。例えば、gruntは<% %>
と<%= %>
のようなテンプレート文字列をサポートしています。この質問のように、不平等やgulpのプラグインがあります。grunt-ng-configこれらのソリューションは、私が使用しているAngularに固有ですが、AngularJS固有のソリューションを探す必要はありません。
私はまた、angular-environment
プラグインについて知っていますが、実行時にこれが設定されているのを見る限り、ビルド時にこれを行うことができるものを探しています。
私が探しているのは、いくつかのテンプレート文字列を置き換えるか、または実行時に読むことができるいくつかの変数を持つJavascriptファイルを生成することによって、ビルド時にアプリケーションを構成できるものです。
1つの要件は、OSに依存しないことです。だから私はsed
のようなUNIX固有のツールを使ってファイルを書き換えたくない。さまざまな変数の拡張(例:%
対$
)のため、解決策は環境変数に依存するべきではありません。
これには既存のソリューションまたはベストプラクティスがありますか?原因別の変数展開($対例えば%)に
私が知る限り、環境変数はプラットフォームに依存しているので、ウィンドウ(バッチ)では '%'、Unixでは$(bash)です。あなたはそれを解決する方法を提案していますか?興味深い翡翠の提案は、私がそれを使用できるかどうかを見ていきます。 – lanoxx
ハンドルバーもサーバー側には良いと思うし、普通のHTMLフォーマットでも使えるよ – danday74
%と$のものは、varsを読んでいるのですか?あなたは、envvarnameがvarの名前であるところで、process.env.envvarnameを使って読み込むことはできませんか? – danday74