/* global require module __dirname */ const HtmlWebpackPlugin = require('html-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin'); module.exports = { entry: { index: './src/js/index.js', }, mode: 'production', // or development optimization: { minimize: true, minimizer: [ new TerserPlugin({ extractComments: false, }), new CssMinimizerPlugin(), ], }, output: { path: `${__dirname}/docs`, filename: 'app.js', }, plugins: [ new MiniCssExtractPlugin(), new HtmlWebpackPlugin({ template: './src/index.html', inject: true, chunks: ['index'], filename: 'index.html' }) ], module: { rules: [{ test: /\.js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'], }, }, }, { test: /\.css$/, use: [ MiniCssExtractPlugin.loader, // 'style-loader', 'css-loader', // 'sass-loader', ], }, { test: /\.(svg|jpg|png|ttf|eot|woff|woff2)$/, use: [ 'url-loader', ], }, ], }, };