2016-09-29 4 views
0

私はenv変数にWebPACKのサーバーを実行しているよ、とテスト環境は、私のビルド環境を指す:いくつかの条件が一致した場合にのみウェブパックにいくつかのjを注入する方法はありますか?

var environment = process.env.environment == null ? "development" : process.env.environment 

どのように私はこのenvironment値に応じて、ビルドにいくつかのJSを追加することができますか?あなたのdevのWebPACKのコンフィグを含むdefault.jsを作成

if (NODE_ENV="test") { 
    import { "my_polyfill" } 
} 

答えて

0

node-config

  1. をチェックアウト:私はDefinePluginで醜いものを書きたくないし、その後のようなものが。
  2. default.jsを選んで、WebPACKのにそれを提供するデフォルトnode-configではdefault.js

以上の追加の設定とproduction.jsを作成します。

NODE_ENV=productionと設定すると、production.jsと表示され、Object.assign({}, default, production)となり、webpackに供給されます。

このようにすると、webpackのn個の番号envを管理することができます。

ホップに役立ちます。

[UPDATE]

あなたのケースを実証する例を追加しています...

export default { 
    entry: ['./foo/bar', './foo1/bar1'], 
    output: { 
    path: path.resolve('./build/js'), 
    filename: '[name].js', 
    publicPath: '/js/' 
    }, 
} 

がルートにconfig/production.jsを作成し、プロジェクトのルートにconfig/default.jsを作成します。あなたのプロジェクトの

export default { 
     entry: ['./foo/bar', './foo1/bar1', './new/entry'], //adding the new entry 
     plugins: [ 
     new webpack.optimize.UglifyJsPlugin({ 
     compress: { 
     warnings: false, 
     }, 
     }), 
     ], 
    } 

NODE_ENV=production 
webpack --progress --colors 
が返されます。この場合、ノード-config設定では、プロジェクトのルートに

import config from 'config' //I'm using ES6 style. You can use require also 

export default config.default //export the config based on the NODE_ENV 

ショータイム

webpack --progress --colors 
default.js as the config 

webpack.config.babel.jsを作成します。

この場合、node-configはdefault.jsproduction.jsの両方を使用し、default.js(ここでは、production.jsのエントリとプラグインはdefault.jsで上書きされます)の上書きを行い、{entries production.js)、出力(default.js)、プラグイン(production.js)}(これはObject.assign()操作です)。

default.jsに戻ります。あなたはNODE_ENVにリセットする必要が

NODE_ENV= 

はそれが役に立てば幸いあなたのOSに基づいてNODE_ENVをしながらYovが

+0

はあなたが私に作業例を示すことができexportまたはexportsを使用する必要がありますしてください? 'Object.assign? 'で何をすればいいですか – asiniy

+0

@asiniy Object.assign()で何もする必要はありません。 node-configはそれを処理します。私は少し例を追加します。 –

+0

'注射する 'とはどういう意味ですか? 'env'に基づいて' entries'を追加しますか? –

関連する問題