2016-08-02 21 views
0

Webpackを使用して、本番用にnode.jsアプリをバンドルしています。Webpackバンドル動的クライアント設定

私たちの問題は、すでにバンドルした後、再バンドルする必要なく、動的設定を追加する方法です。

サーバー側では、ノードのenv変数を使用できますが、これはクライアントバンドルに対してどのように行うことができますか?具体的には、どのapiサーバアドレスに接続するかをブラウザモジュールに伝える必要があります。

設定でjs/jsonファイルを使用すると、設定値がバンドルに挿入されるため、後で変更することはできません(快適にバンドルファイルを開いたり手動で検索して置き換えないでください)。

express-exposeのようなものを使用すると、別のネットワーク要求がデータを取得し、サーバーアドレスが動的なので、私たちが望むものではありません。

ノード-config設定など、

+0

この点があなたを解決するかどうかを確認してください:http://stackoverflow.com/questions/35408898/why-is-my-webpack-bundle-js-and-vendor-bundle-js-so-incredibly-big/35413001 #35413001 –

+0

@ViniciusVieiraブラウザでは使用できない環境変数を使用する方法を示しています。 – omerts

+0

必要な状態に対して、異なるスクリプトを使用して異なるバンドルを作成することはできませんか? –

答えて

1

あなたはexternalsオプションの創造を利用することができ、クライアント側では動作しません:あなたは、あなたの設定にあなただけ聞かせできることを追加した場合

externals: [ 
    { appConfig: 'var appConfig' }, 
], 

あなたウェブサーバーは、ウェブパックバンドルのロードの前にvar appConfig = {"config":"value"};というスクリプトタグを追加してください。単純なrequire('appConfig')がそれを取り上げます。

+1

お返事ありがとうございます。私たちは実際にサーバーにグローバル設定変数を持つバンドルの前にスクリプトを追加さ​​せることになりましたが、あなたのメソッドでwebpackを通して動作を制御することができます。 – omerts