Javascript 如何使用webpack.config.js自定义配置?

Javascript 如何使用webpack.config.js自定义配置?,javascript,reactjs,webpack,Javascript,Reactjs,Webpack,我有一个带有webpack的react项目,其中有一个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/j

我有一个带有webpack的react项目,其中有一个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;
我想在另一个js文件中使用
config.serverBaseUrl
?我该怎么办

我能做什么

const config=require('./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

更新

如果我在另一个文件中使用
const=require('config')
我犯了这个错误

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
ICN, 为了支持J.Titus语句,您可能只需要创建另一个名为say Environment.js的JavaScript类,然后将其导出并使用其中的设置。在JS类的顶部,您可以要求Environment.JS,然后只需输入值。保持您的网页包配置您的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模式。原型模式,揭示原型模式,这将有助于你接受包括外部课程在内的教育。

看起来你已经在导出配置,为什么不只需要配置呢?既然你已经导出了
config
,如果您需要,我相信您可以使用
config.serverBaseUrl
在任何其他文件中获取它。@DylanWright请查看我的更新。我发现
模块未找到的错误:错误:无法解析模块'config'
@MamdohSaraireh请查看我的更新。我发现
模块未找到的错误:错误:无法解析模块'config'
您不能使用
require('config')
,因为您没有名为
config.js的文件