const TerserPlugin = require('terser-webpack-plugin'); const copyWebpackPlugin = require('copy-webpack-plugin') // const purgecss = require('@fullhuman/postcss-purgecss')({ // content: [ // './src/**/*.html', // './src/**/*.vue', // './src/**/*.jsx', // ], // // // Include any special characters you're using in this regular expression // defaultExtractor: content => content.match(/[\w-/:]+(? { // const svgRule = config.module.rule('svg') // svgRule.uses.clear() // svgRule // .use('svg-sprite-loader') // .loader('svg-sprite-loader') // .options({ // symbolId: 'icon-[name]' // }); config.optimization.minimizer('terser') .tap(items => { items = items.map(item => { Object.assign(item.terserOptions.compress, { pure_funcs: ['console.log'], drop_console: true }) return item; }) return items }) config.module .rule('svg') .exclude.add(resolve('src/icons')) .end() config.module .rule('icons') .test(/\.svg$/) .include.add(resolve('src/icons')) .end() .use('svg-sprite-loader') .loader('svg-sprite-loader') .options({ symbolId: 'icon-[name]' }) .end() return config; }, configureWebpack: { plugins: [ new copyWebpackPlugin([ {from: "public/.htaccess", to: "dashboard/"}, {from: "public/.htaccess", to: "admin/"}, {from: "public/.htaccess", to: "wap/"}, ], {copyUnmodified: true}), ], resolve: { alias: { '@': resolve('src'), 'views': resolve('src/views') } } } }