2017-07-08 345 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模式。原型模式,揭示原型模式,这将有助于你的教育,包括外部类。