webpack-config
Helps to load, extend and merge webpack configs
For API docs please see the documentation page!
docs/samples/conf/webpack.base.config.js
'use strict';
var path = require('path'),
BowerPlugin = require('bower-webpack-plugin'),
ExtractTextPlugin = require('extract-text-webpack-plugin'),
ComponentPlugin = require('component-webpack-plugin'),
WebpackConfig = require('webpack-config');
module.exports = new WebpackConfig().merge({
output: {
filename: '[name].js'
},
resolve: {
root: [
__dirname,
path.join(__dirname, 'src', 'main', 'assets')
],
modulesDirectories: [
'node_modules',
'bower_components',
'custom_components'
]
},
plugins: [
new ComponentPlugin(),
new BowerPlugin({
excludes: [
/.*\.min.*/
]
}),
new ExtractTextPlugin('[name].css')
],
module: {
loaders: [{
test: /\.css$/,
exclude: /.*\.min.css/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
}, {
test: /\.less$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader!less-loader')
}, {
test: /\.png$/,
loader: 'url-loader?prefix=img/&limit=5000'
}, {
test: /\.jpg$/,
loader: 'url-loader?prefix=img/&limit=5000'
}, {
test: /\.gif$/,
loader: 'url-loader?prefix=img/&limit=5000'
}, {
test: /\.woff$/,
loader: 'url-loader?prefix=font/&limit=5000'
}, {
test: /\.eot$/,
loader: 'file-loader?prefix=font/'
}, {
test: /\.ttf$/,
loader: 'file-loader?prefix=font/'
}, {
test: /\.svg$/,
loader: 'file-loader?prefix=font/'
}]
}
});
docs/samples/conf/webpack.dev.config.js
'use strict';
var webpack = require('webpack'),
WebpackConfig = require('webpack-config');
module.exports = new WebpackConfig().extend('./conf/webpack.base.config.js').merge({
filename: __filename,
debug: true,
devtool: '#source-map',
output: {
pathinfo: true
},
entry: {
vendor: [
'consolelog',
'es5-shim',
'es5-shim/es5-sham',
'es6-shim',
'es6-shim/es6-sham',
'json3',
'html5shiv',
'html5shiv/dist/html5shiv-printshiv.js',
'respond'
]
},
plugins: [
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js')
]
});
docs/samples/conf/webpack.prod.config.js
'use strict';
var webpack = require('webpack'),
WebpackConfig = require('webpack-config');
module.exports = new WebpackConfig().extend({
'./conf/webpack.dev.config.js': function(config) {
delete config.debug;
delete config.devtool;
delete config.output.pathinfo;
return config;
}
}).merge({
filename: __filename,
plugins: [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurrenceOrderPlugin(true),
new webpack.optimize.UglifyJsPlugin({
mangle: true,
output: {
comments: false
},
compress: {
warnings: false
}
})
]
});
docs/samples/webpack.config.js
'use strict';
var WebpackConfig = require('webpack-config');
WebpackConfig.environment.setAll({
env: function() {
return process.env.WEBPACK_ENV || process.env.NODE_ENV;
}
});
module.exports = new WebpackConfig().extend('./conf/webpack.[env].config.js');