const path = require('path'); // Plugins const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const env = process.env; module.exports = { mode: `${env.NODE_ENV ? env.NODE_ENV : 'production'}`, entry: path.join(__dirname, './cmd/fake-sms/public/src/index.js'), output: { filename: '[name].js', path: path.join(__dirname, './cmd/fake-sms/public/dist') }, module: { rules: [{ test: /\.js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'], plugins: ['@babel/plugin-proposal-class-properties'] } } },{ test: /\.s(a|c)ss$/, use: [ MiniCssExtractPlugin.loader, { loader: "css-loader", options: {} }, { loader: "resolve-url-loader", options: {} }, { loader: "sass-loader", options: { sourceMap: true, } } ] },{ test: /\.(woff(2)?|ttf|eot)(\?v=\d+\.\d+\.\d+)?$/, use: [{ loader: 'file-loader', options: { name: '[name].[ext]', outputPath: '/fonts/' } }] },{ test: /\.(svg|png|jpg)(\?v=\d+\.\d+\.\d+)?$/, use: [{ loader: 'file-loader', options: { name: '[name].[ext]', outputPath: '/img/' } }] }] }, plugins: [ new MiniCssExtractPlugin({ filename: "./css/[name].css", chunkFilename: "./css/[id].css" }) ] }