45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
const webpack = require('webpack');
|
|
const config = require('./webpack.config');
|
|
const options = require('./webpack.config.options');
|
|
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
|
|
const StyleLintPlugin = require('stylelint-webpack-plugin');
|
|
|
|
module.exports = function(env) {
|
|
var generatedConfig = config(env, false);
|
|
|
|
generatedConfig.plugins = [
|
|
new webpack.LoaderOptionsPlugin({
|
|
minimize: true
|
|
}),
|
|
new StyleLintPlugin({
|
|
configFile: '.stylelintrc',
|
|
context: 'src',
|
|
emitErrors: true,
|
|
failOnError: true,
|
|
quiet: false,
|
|
}),
|
|
|
|
// Lesman 10/03/2017
|
|
// This plugin enforces case sensitive paths in order
|
|
// to give build consistency across systems (OsX is not case sensitive)
|
|
// however the plugin is relatively slow (adds ~20 seconds to the build)
|
|
// and our jenkins system is already case-sensitive so it's not critical
|
|
// The plugin does provide better error message though, so we may want to
|
|
// re-enable it if case-sensitivity build problems are an issue
|
|
|
|
// new CaseSensitivePathsPlugin({debug: true}),
|
|
|
|
new webpack.optimize.UglifyJsPlugin({
|
|
// compress: {
|
|
// warnings: true
|
|
// },
|
|
sourceMap: true
|
|
}),
|
|
new webpack.DefinePlugin({
|
|
'process.env.NODE_ENV' : JSON.stringify('production')
|
|
}),
|
|
].concat(options.getPlugins(env || {}));
|
|
|
|
return generatedConfig;
|
|
}
|