2016-09-08 5 views
0

私のアプリ内でprocess.env.NODE_ENVにアクセスしようとしていますが、チェックするときに「プロセスが定義されていません」と表示されます。NODE_ENV = productionをnpmとwebpackで設定できません

package.json:

"scripts": { 
    "dev": "node ./node_modules/webpack/bin/webpack.js", 
    "prod": "NODE_ENV=production node ./node_modules/webpack/bin/webpack.js -p" 
}, 

webpack.config.js:アプリケーションソースに

plugins: [ 
    new webpack.DefinePlugin({ 
    'process.env': { 
     'NODE_ENV': JSON.stringify(NODE_ENV), 
     'URL_DEV': JSON.stringify("specificIP"), 
     'URL_PROD': JSON.stringify("OtherIP") 
    } 
    }) 
] 

const NODE_ENV = process.env.NODE_ENV ? process.env.NODE_ENV.toLowerCase() : 'development';

以下

switch(process.env.NODE_ENV) { 
    case 'development': 
    url = process.env.URL_DEV; 
    break; 
    case 'production': 
    url = process.env.URL_PROD; 
    break; 
    default: 
    url = process.env.URL_DEV; 
} 

そして、それはprocessが定義されていないようです...私はここで間違っていますか?

+0

これがhttps://github.com/webpack/webpack/issues/2537に役立つかどうかを確認しますか? –

+0

チップをありがとうが、私はそれを動作させることはできません。実際には、変数を渡そうとしなくても、「process.env」から何も取得できないようです。この 'URL_DEV'でも:JSON.stringify( "specificIP") 'は動作していないようです... – Clafou

答えて

1

私はこの問題はpackage.jsonの内側に私のscriptsキーから来た場合は完全にはわからないが、私がこれを使用する場合NODE_ENVが正しく設定されているようだ:

"scripts": { 
    "dev": "cross-env NODE_ENV=development node ./node_modules/webpack/bin/webpack.js --progress --colors --bail", 
    "prod": "cross-env NODE_ENV=production webpack -p --progress --colors --bail" 
} 

だから私は実際にcross-envを使用して...それは魔法のように動作します。 私がそうだったようなオプションが外れている場合でも、このショットを与えることができます。

関連する問題