| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | 'use strict'const path = require('path')function resolve(dir) {  return path.join(__dirname, dir)}const CompressionPlugin = require('compression-webpack-plugin')const name = process.env.VUE_APP_TITLE || '一码游管理系统' const port = process.env.port || process.env.npm_config_port || 80 const webpack = require('webpack');module.exports = {        publicPath: process.env.NODE_ENV === "production" ? "/" : "/",    outputDir: 'dist',    assetsDir: 'static',    lintOnSave: process.env.NODE_ENV === 'development',    productionSourceMap: false,    devServer: {    host: '0.0.0.0',    port: port,    open: true,    proxy: {            [process.env.VUE_APP_BASE_API]: {        target: `http://greatadmin.dev.gztjy.top/scenicstage-api`,        changeOrigin: true,        pathRewrite: {          ['^' + process.env.VUE_APP_BASE_API]: ''        }      }    },    disableHostCheck: true  },  css: {    loaderOptions: {      sass: {        sassOptions: { outputStyle: "expanded" }      }    }  },  configureWebpack: {    name: name,    resolve: {      alias: {        '@': resolve('src')      }    },    plugins: [                  new CompressionPlugin({        cache: false,                           test: /\.(js|css|html)?$/i,             filename: '[path].gz[query]',           algorithm: 'gzip',                      minRatio: 0.8                         }),            new webpack.ProvidePlugin({        jQuery: "jquery",        $: "jquery"      }),          ],  },  chainWebpack(config) {    config.plugins.delete('preload')     config.plugins.delete('prefetch')         config.module      .rule('svg')      .exclude.add(resolve('src/assets/icons'))      .end()    config.module      .rule('icons')      .test(/\.svg$/)      .include.add(resolve('src/assets/icons'))      .end()      .use('svg-sprite-loader')      .loader('svg-sprite-loader')      .options({        symbolId: 'icon-[name]'      })      .end()    config.when(process.env.NODE_ENV !== 'development', config => {          config            .plugin('ScriptExtHtmlWebpackPlugin')            .after('html')            .use('script-ext-html-webpack-plugin', [{                          inline: /runtime\..*\.js$/            }])            .end()          config.optimization.splitChunks({            chunks: 'all',            cacheGroups: {              libs: {                name: 'chunk-libs',                test: /[\\/]node_modules[\\/]/,                priority: 10,                chunks: 'initial'               },              elementUI: {                name: 'chunk-elementUI',                 test: /[\\/]node_modules[\\/]_?element-ui(.*)/,                 priority: 20               },              commons: {                name: 'chunk-commons',                test: resolve('src/components'),                 minChunks: 3,                 priority: 5,                reuseExistingChunk: true              }            }          })          config.optimization.runtimeChunk('single'),          {             from: path.resolve(__dirname, './public/robots.txt'),              to: './'           }    })  }}
 |