const path = require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const CleanWebpackPlugin = require("clean-webpack-plugin"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const UglifyJSPlugin = require("uglifyjs-webpack-plugin"); module.exports = { entry: "./app/index.js", output: { filename: "bundle.js", path: path.resolve(__dirname, "dist") }, plugins: [ new CleanWebpackPlugin(["dist"]), new HtmlWebpackPlugin({ template: path.resolve(__dirname, "app/index.html") }), new UglifyJSPlugin(), new MiniCssExtractPlugin({ filename: "[name].css", chunkFilename: "[id].css" }) ], module: { rules: [{ test: /\.js$/, loader: "babel-loader", exclude: /node_modules/ }, { test: /\.(png|svg|jpg|gif)$/, use: ["file-loader"] }, { test: /\.(woff|woff2|eot|ttf|otf)$/, use: ["file-loader"] }, { test: /\.html$/, use: ["html-loader"] }, { test: /\.scss$/, use: [ MiniCssExtractPlugin.loader, { loader: "css-loader" }, { loader: "sass-loader" } ] }] } };