import TerserPlugin from "terser-webpack-plugin-legacy"; import SpriteLoaderPlugin from "svg-sprite-loader/plugin"; import { resolve } from "path"; export default webpackConfig => { const data = webpackConfig.resolve.alias; webpackConfig.resolve.alias = { "@": `${__dirname}/src`, ...data }; webpackConfig.module.rules.forEach(item => { if (String(item.loader).indexOf("url-loader") > -1) { item.exclude.push(resolve(__dirname, "./src/assets/icons")); } }); webpackConfig.module.rules = [ { test: /\.svg$/, include: resolve(__dirname, "./src/assets/icons"), use: [ { loader: "svg-sprite-loader" } ] } ].concat(webpackConfig.module.rules); webpackConfig.plugins = webpackConfig.plugins.concat([ new SpriteLoaderPlugin() ]); if (process.env.NODE_ENV === "production") { webpackConfig.plugins.splice( 3, 1, new TerserPlugin({ cache: true, parallel: true }) ); } return webpackConfig; };