2019-12-06 12:51:20 +00:00
|
|
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
|
|
const webpack = require('webpack');
|
2018-11-16 23:19:55 +00:00
|
|
|
const path = require('path');
|
2019-12-06 12:51:20 +00:00
|
|
|
const WorkboxWebpackPlugin = require('workbox-webpack-plugin');
|
2018-11-16 23:19:55 +00:00
|
|
|
|
2019-12-06 13:06:54 +00:00
|
|
|
module.exports = {
|
|
|
|
mode: 'production',
|
|
|
|
entry: {
|
|
|
|
main: './src/index.js'
|
|
|
|
},
|
|
|
|
output: {
|
|
|
|
filename: '[name].[chunkhash].js',
|
|
|
|
chunkFilename: '[name].[chunkhash].bundle.js',
|
|
|
|
path: path.resolve(__dirname, 'dist'),
|
|
|
|
},
|
|
|
|
resolve: {
|
|
|
|
extensions: ['.js', '.jsx']
|
|
|
|
},
|
|
|
|
plugins: [
|
|
|
|
new webpack.HashedModuleIdsPlugin(),
|
|
|
|
new HtmlWebpackPlugin({
|
|
|
|
template: './index.html',
|
|
|
|
minify: { collapseWhitespace: true, removeCommecnts: true },
|
|
|
|
inject: false
|
|
|
|
}),
|
|
|
|
new WorkboxWebpackPlugin.InjectManifest({
|
|
|
|
swSrc: './src/src-sw.js',
|
|
|
|
swDest: 'sw.js'
|
|
|
|
})
|
|
|
|
],
|
|
|
|
devtool: "source-map",
|
|
|
|
module: {
|
|
|
|
rules: [
|
|
|
|
{
|
|
|
|
test: /\.(js|jsx)$/,
|
|
|
|
exclude: /node_modules/,
|
|
|
|
use: {
|
|
|
|
loader: 'babel-loader'
|
2019-12-06 12:51:20 +00:00
|
|
|
}
|
2019-12-06 13:06:54 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
test: /\.scss$/,
|
|
|
|
use: [
|
|
|
|
{
|
|
|
|
loader: 'style-loader'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
loader: 'css-loader',
|
|
|
|
options: {
|
|
|
|
importLoaders: 1
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
loader: 'postcss-loader'
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
test: /\.css$/,
|
|
|
|
use: ['style-loader', 'css-loader']
|
|
|
|
},
|
|
|
|
{
|
|
|
|
test: /\.(png|jpg|svg|woff|woff2)?(\?v=\d+.\d+.\d+)?$/,
|
|
|
|
loader: 'url-loader?limit=25000'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
test: /\.(eot|ttf)$/,
|
|
|
|
loader: 'file-loader'
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-11-16 23:19:55 +00:00
|
|
|
};
|