2017-07-08 59 views
0

我有一個用的WebPack與webpack.config.js文件反應項目這樣如何使用webpack.config.js自定義配置?

const webpack = require('webpack'); 

const config = { 
    serverBaseUrl: 'http://localhost:3000', 
    devtool: "inline-source-map", 
    entry: __dirname + "/app/App.js", 
    output: { 
    path: "./public/js/", 
    publicPath: "/js/", 
    filename: "bundle.js" 
    }, 
    module: { 
    loaders: [{ 
     test: /.jsx?$/, 
     exclude: /node_modules/, 
     loader: "babel", 
     query: { 
     presets: ["es2015","react","stage-0"] 
     } 
    }] 
    }, 
    devServer: { 
    port: 8008, 
    contentBase: "./public", 
    colors: true, 
    historyApiFallback: true, 
    inline: true 
    }, 
} 

if (process.env.NODE_ENV === 'production') { 
    config.serverBaseUrl = 'http://api.domain.com'; 
    config.devtool = false; 
    config.plugins = [ 
    new webpack.optimize.OccurenceOrderPlugin(), 
    new webpack.optimize.UglifyJsPlugin({comments: false}), 
    new webpack.DefinePlugin({ 
     'process.env': {NODE_ENV: JSON.stringify('production')} 
    }) 
    ]; 
}; 

module.exports = config; 

我想用config.serverBaseUrl在另一個JS文件?我該怎麼辦?

我可以做

const config = require('./webpack.config.js')

和使用config這樣

config.serverBaseUrl

UPDATE

,如果我在另一個文件中 我得到這個使用const= require('config')呃ROR

ERROR in ./app/components/ComponentBase.js 
Module not found: Error: Cannot resolve module 'config' in /Users/username/data/projects/bwe_web/app/components 
@ ./app/components/ComponentBase.js 33:13-30 
+0

看起來你已經在輸出配置,爲什麼不只是需要配置? –

+0

由於喲已經導出了'config',我相信如果你需要的話,你可以使用'config.serverBaseUrl'來獲取它。 –

+0

@DylanWright請參閱我的更新。我得到了一個錯誤'Module not found:Error:Can not resolve module'config'' – icn

回答

0

ICN, 要與J.泰特斯聲明一起去,你應該只創建另一個名爲JavaScript類說Environment.js和導出,並從那裏使用的設置。在您的JS類的頂部,您可以要求使用Environment.js,然後只需提取這些值。保持你的webpack配置你的web.pack配置。

'use strict' 
var EnvironmentSettings = function(){ 
    var serverBaseUrl = 'http://api.domain.com'; 
}; 

module.exports.EnvironmentSettings = EnvironmentSettings; 

然後爲你需要或者說要實現/初始化任何執行,你只需要它在JavaScript類的頂部。

const envSettings = require('EnvironmentSettings'); 
var api = envSettings.serverBaseUrl 

你應該熟悉一些JS模式。原型模式,揭示原型模式,這將有助於你的教育,包括外部類。

相關問題