2017-02-17 5 views
0

この環境変数ファイルは、NODE_ENDに応じて変数configをエクスポートします。現在、生産と開発の変数は1つのファイルの中にあります。どのように私はdevelopment.jsとproduction.jsなどのファイルを分離することができます:環境変数 - ReactJSのファイルを別ファイルにしました

if(process.env.NODE_ENV === 'production') { 
    module.exports = { 
     API_URL: "https://test.co/api" 
    } 
} 
else { 
    module.exports = { 
     API_URL: "http://testbeta.co/api" 
    } 
} 
+0

あなたはWebPACKのを使用していますか? – Chris

答えて

0

あなたがそれらを橋渡しし、意図したモジュールをエクスポートする別のファイルを持つことができます。たとえば、同じフォルダに3つの別々のファイルindex.js,development.js、およびproduction.jsを作成します。api

// production.js 
module.exports = { 
    API_URL: "https://e27.co/api" 
} 

// development.js 
module.exports = { 
    API_URL: "http://e27beta.co/api" 
} 

// index.js 
let exp 
if (process.env.NODE_ENV === 'production') { 
    exp = require('./production.js') 
} else { 
    exp = require('./development.js') 
} 
module.exports = exp 

その後、あなたはWebPACKのを使用している場合は、まさにこの目的のためにDefinePluginプラグインを活用することができます他の場所

// elsewhere.js 
const api = require('path_to_api_folder') 
0

のような、それを必要とすることができます

https://webpack.js.org/plugins/define-plugin/#use-case-service-urls

if(isProd) { 
    config.plugins.push(new webpack.DefinePlugin({ 
    'SERVICE_URL': JSON.stringify("http://prod.example.com") 
    })); 
} else { 
    config.plugins.push(new webpack.DefinePlugin({ 
    'SERVICE_URL': JSON.stringify("http://dev.example.com") 
    })); 
} 
+0

'process.env.NODE_ENV'のwebpackDefinePluginを確認するには、webpack.config.jsにない別のファイルに入れたいだけです –

+0

通常のrequire/importを使用してwebpackファイルに設定ファイルをインポートします – Chris

0

あなたは可能性がありそれぞれ適切なSERVICE_URL 'を持つ2つの別々のwebpack設定があります。適切な設定のWebPACK渡すだけで、構築するには

// webpack.config.dev.js 
plugins.push(new webpack.DefinePlugin({ 
    'SERVICE_URL': JSON.stringify("http://dev-url.com") 
})); 

// webpack.config.prod.js 
plugins.push(new webpack.DefinePlugin({ 
    'SERVICE_URL': JSON.stringify("http://prod-url.com") 
})); 

webpack --config webpack.config.prod.js 
webpack --config webpack.config.dev.js 
関連する問題