2016-09-19 26 views
0

私は現在、角度のあるwebpackを使用しています。私はそれが開発または生産の天気に応じて変数を使用したいと思います。Webpack:角度/ javascriptでprod/devファイルを使用しますか?

これは、prodまたはdevの場合に検出するためのwebpackの設定済みですが、javascript/angularに変数を送信する際に問題が発生しています。

私は最初、ソリューションがDefinePluginを使用していると思っていましたが、これはjavascript/angularのグローバル変数として利用できません。

new webpack.DefinePlugin({ 
    API_URL: JSON.stringify('testing') 
    }), 

誰にも解決策がありますか?私は実際に生産や開発の天候に応じて角度や角度を変える変数やファイルを送る必要があります。たとえば、apiバックエンドのベースURLを使用します。生産とは異なる開発です。

これを自動化された方法でサポートする何らかの方法があれば、コメントアウトはとても悪い考えです。

私が言うように、webpackには変数があります。その変数は、プロダクションかデベロッパーかを判断するためのものですが、角度/ javascriptの問題があります。

アイデア?

おかげで..

+1

「API_URL」はグローバルに利用できるはずです。http://stackoverflow.com/questions/34479372/use-node-env-in-source-code-to-control-build-process-with-webpack – Oskar

+1

'DefinePlugin'は_compile_timeで動作することに気づかなければなりません。言い換えれば、コード内の 'API_URL'の出現をバンドルされたときに定義された値に置き換えます。したがって、Webpackによって処理されるコードに対してのみ利用可能になります。 – robertklep

+0

ああそうです。ありがとう – Martin

答えて

1

私はちょうどdocsの例次DefinePluginをテストしました。それは私のために働くようです。たぶんあなたのwebpackとDefinePluginのバージョンを更新するチェックアウト?

babelのようなトランスヒーターを使用する場合は、inline environment variables transformを使用して環境変数を注入することもできます。

+0

はい、それは動作します、私でした。私はバベルプラグインが好きです - とても素敵です – Martin

関連する問題