const { defineConfig } = require('@vue/cli-service');
const CompressionPlugin = require('compression-webpack-plugin');
const WebpackBar = require('webpackbar');

module.exports = defineConfig({
	transpileDependencies: true,
	publicPath: process.env.NODE_ENV === 'production' ? './' : './',
	productionSourceMap: false, // 不生成map文件-优化打包
	// 生产环境，开启js\css压缩--- 打包优化
	chainWebpack: config => {
		if (process.env.NODE_ENV === 'production') {
			config.plugin('compressionPlugin').use(
				new CompressionPlugin({
					test: /\.(js|css|less|map)$/, // 匹配文件名
					threshold: 1024, // 对超过10k的数据压缩
					minRatio: 0.8,
				}),
			);
		}
	},
	// 代理设置
	devServer: {
		port: 6367,
		open: true,
		https: false,
		proxy: {
			'/api': {
				target: process.env.VUE_APP_URL,
				changeOrigin: true,
			},
			'/mock': {
				target: process.env.VUE_APP_URL,
				changeOrigin: true,
			},
		},
	},
	configureWebpack: {
		plugins: [
			// 设置进度条颜色
			new WebpackBar({ color: '#F6DCE0', profile: true }),
		],
	},
});
