const path = require('path'); const {CleanWebpackPlugin} = require('clean-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { mode: 'development', entry: { index: './src/index.js' }, output: { filename: '[name].bundle.js', path: path.resolve(__dirname, '../dist') }, module: { rules: [ { test: /\.s?css$/, use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'] }, { test: /\.(woff|woff2|eot|ttf|otf)$/, loader: "file-loader", options: { name: '[name].[ext]', outputPath: 'font/' } } ] }, plugins: [ new CleanWebpackPlugin(), new MiniCssExtractPlugin({ filename: '[name].css' }), ], devServer: { contentBase: './dist', hot: true }, optimization: { splitChunks: { cacheGroups: { commons: { test: /[\\/]node_modules[\\/]/, name: 'vendors', chunks: 'all' }, styles: { name: 'styles', test: /\.css$/, chunks: 'all', enforce: true, }, } } } };