const {
    defineConfig
} = require('@vue/cli-service')
const TerserPlugin = require('terser-webpack-plugin');
module.exports = defineConfig({
    //设置为空打包后不分更目录还是多级目录
    publicPath: process.env.PUBLIC_PATH,
    //build编译后存放静态文件的目录
    assetsDir: "static",
    // build编译后不生成资源MAP文件
    productionSourceMap: false,
    //开发服务,build后的生产模式还需nginx代理
    chainWebpack: config => {
        // 移除 prefetch 插件
        config.plugins.delete('preload');
        config.plugins.delete('prefetch');
    },
    configureWebpack: {
        output: {
            // filename: 'app.[contenthash].js',
        },
        //性能提示
        performance: {
            hints: false
        },
        optimization: {
            // 去除生产环境中的 console 输出
            minimize: true,
            minimizer: [
                new TerserPlugin({
                    terserOptions: {
                        compress: {
                            drop_console: true
                        }
                    }
                })
            ],
            splitChunks: {
                chunks: "all",
                automaticNameDelimiter: '~',
                name: "xChunks",
                cacheGroups: {
                    //第三方库抽离
                    vendor: {
                        name: "modules",
                        test: /[\\/]node_modules[\\/]/,
                        priority: -10
                    },
                    elicons: {
                        name: "elicons",
                        test: /[\\/]node_modules[\\/]@element-plus[\\/]icons-vue[\\/]/
                    },
                    tinymce: {
                        name: "tinymce",
                        test: /[\\/]node_modules[\\/]tinymce[\\/]/
                    },
                    echarts: {
                        name: "echarts",
                        test: /[\\/]node_modules[\\/]echarts[\\/]/
                    },
                    xgplayer: {
                        name: "xgplayer",
                        test: /[\\/]node_modules[\\/]xgplayer.*[\\/]/
                    },
                    codemirror: {
                        name: "codemirror",
                        test: /[\\/]node_modules[\\/]codemirror[\\/]/
                    }
                }
            }
        }
    }
})