dispatch/client/webpack.config.prod.js

76 lines
1.6 KiB
JavaScript
Raw Normal View History

var path = require('path');
2015-12-28 23:34:32 +00:00
var webpack = require('webpack');
2018-04-13 18:47:39 +00:00
var MiniCssExtractPlugin = require('mini-css-extract-plugin');
var autoprefixer = require('autoprefixer');
var cssnano = require('cssnano');
2015-12-28 23:34:32 +00:00
module.exports = {
2018-03-25 00:34:41 +00:00
mode: 'production',
2018-04-05 23:46:22 +00:00
entry: ['./src/js/index'],
2015-12-28 23:34:32 +00:00
output: {
2017-04-12 01:38:02 +00:00
filename: 'bundle.js'
2015-12-28 23:34:32 +00:00
},
resolve: {
alias: {
components: path.resolve(__dirname, 'src/js/components'),
containers: path.resolve(__dirname, 'src/js/containers'),
state: path.resolve(__dirname, 'src/js/state'),
utils: path.resolve(__dirname, 'src/js/utils')
}
},
2015-12-28 23:34:32 +00:00
module: {
2017-02-16 02:55:50 +00:00
rules: [
2018-04-05 23:46:22 +00:00
{
test: /\.js$/,
loader: 'eslint-loader',
exclude: /node_modules/,
enforce: 'pre',
options: {
fix: true
}
},
2017-02-16 02:55:50 +00:00
{ test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ },
2018-04-13 18:47:39 +00:00
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
modules: false
}
},
{
loader: 'postcss-loader',
options: {
plugins: [
autoprefixer,
cssnano({
discardUnused: {
fontFace: false
}
})
]
}
}
]
}
2015-12-28 23:34:32 +00:00
]
2018-04-13 18:47:39 +00:00
},
plugins: [
new MiniCssExtractPlugin({
2018-04-14 22:58:51 +00:00
filename: 'bundle.css'
2018-04-13 18:47:39 +00:00
})
],
optimization: {
splitChunks: {
cacheGroups: {
styles: {
test: /\.css$/,
chunks: 'all'
}
}
}
}
2015-12-28 23:34:32 +00:00
};