2018-04-05 19:13:32 +00:00
|
|
|
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
|
|
|
},
|
2018-04-05 19:13: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'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2018-04-05 19:13:32 +00:00
|
|
|
}
|
2015-12-28 23:34:32 +00:00
|
|
|
};
|