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