2017-09-28 8 views
0

webpack-mergeを別のwebpack.configファイルで使用しています。 node_env(または他のバリアブル)を渡そうとしています。webpack merge definePlugin process.env.NODE_ENV undefined

webpack.common.jsファイルからprocess env変数にアクセスするにはどうすればよいですか?

これはwebpack.prd.config.jsファイルです:

console.log("Environment: " + process.env.NODE_ENV); 

module.exports = { 
    entry: { 
    ... 

'process.env.NODE_ENV' 変数がある:これはwebpack.common.jsファイルです

const merge = require("webpack-merge"); 
const common = require("./webpack.common.js"); 
const webpack = require("webpack"); 

module.exports = merge(common, { 
    plugins: [ 
     new webpack.DefinePlugin({ 
      "process.env": { 
       "NODE_ENV": JSON.stringify("production") 
      } 
     }) 
    ] 
}); 

常に未定義です。

+0

の末尾にスペースを追加していることを確認してください。 'は現在のプロセスの環境変数を指します。 MacまたはLinuxの場合は、 'export NODE_ENV = production'と入力してビルドプロセスを実行し、変数がまだ定義されていないかどうかを確認してください。 – Ben

+0

asn ASP.NETコアアプリケーションのウィンドウです。 webpack.prd.config.jsからwebpack.common.jsファイルにどのように変数を渡すことができますか? NODE_ENV変数である必要はありません。 –

+0

私はwebpackもASP.NETも使用していないので、私の環境変数の推測は私があなたに与えることができる最高です、ごめんなさい。 – Ben

答えて

1

DefinePlugin webpackの設定ではなく、コードにグローバルオブジェクトを追加するだけです(webpackに送信するもの)。

あなたのWebPACKの設定でNODE_ENVにしたいのであれば、あなたはそれを最初にエクスポートする必要があります。

export NODE_ENV=production 
webpack .... 

または

NODE_ENV=production webpack ... 
1

を私はWebPACKの-pがprocess.env.NODE_ENVの値を送信しないことに気づきました〜webapck.conf.js

私はこの頭痛を

で解決します。

ちょうどあなたがそれらを比較しようとすると、私は `、正しくprocess.envを思い出す場合は、単に生産

var isProd = process.env.NODE_ENV === "production "; 
関連する問題