const path = require('path') const terserPlugin = require('terser-webpack-plugin') module.exports = { publicPath: '/', productionSourceMap: false, devServer: { disableHostCheck: true, open: true, port: 8888, // 开发环境默认开启反向代理,如果不需要请自行注释 proxy: { '/tduck-api': { target: 'http://localhost:8999', changeOrigin: true } } }, configureWebpack: config => { config.resolve.modules = ['node_modules'] config.resolve.alias = { '@': path.resolve(__dirname, 'src') } config.optimization = { minimizer: [ //https://webpack.docschina.org/plugins/terser-webpack-plugin/ new terserPlugin({ terserOptions: { compress: { warnings: false, drop_console: true, drop_debugger: true, pure_funcs: ['console.log'] } } }) ] } }, chainWebpack: config => { const oneOfsMap = config.module.rule('scss').oneOfs.store oneOfsMap.forEach(item => { item.use('sass-resources-loader') .loader('sass-resources-loader') .options({ resources: [ './src/assets/styles/resources/*.scss', ] }) .end() }) config.module .rule('svg') .exclude.add(path.join(__dirname, 'src/assets/icons')) .end() config.module .rule('icons') .test(/\.svg$/) .include.add(path.join(__dirname, 'src/assets/icons')) .end() .use('svg-sprite-loader') .loader('svg-sprite-loader') .options({ symbolId: 'icon-[name]' }) .end() config.plugin('html') .tap(args => { args[0].title = process.env.VUE_APP_TITLE args[0].debugTool = process.env.VUE_APP_DEBUG_TOOL return args }) .end() } }