const path = require('path'); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { entry: './src/javascript/index.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js' }, mode: 'development', module: { rules: [ { test: /\.js$/, exclude: /(node_modules)/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] } } }, { // Apply rule for .sass, .scss or .css files test: /\.scss$/, // Set loaders to transform files. // Loaders are applying from right to left(!) // The first loader will be applied after others use: [ { loader: MiniCssExtractPlugin.loader }, 'css-loader', { // Then we apply postCSS fixes like autoprefixer and minifying loader: "postcss-loader" }, { // First we transform SASS to standard CSS loader: "sass-loader", options: { implementation: require("sass") } } ] }, { test: /\.(png|jpe?g|gif|svg)$/, use: [ { loader: "file-loader", options: { outputPath: 'images' } } ] }, { test: /\.(woff|woff2|ttf|otf|eot)$/, use: [ { loader: "file-loader", options: { outputPath: 'fonts' } } ] } ] }, plugins: [ new MiniCssExtractPlugin() ] };