import { defineConfig } from 'vite';
import createVuePlugin from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import svgLoader from 'vite-svg-loader';
import viteCompression from 'vite-plugin-compression';

import path from 'path';

export default defineConfig(({ command, mode }) => {
  // 获取打包时间--
  let date = new Date();
  let newDate = `${date.getFullYear()}-${
    date.getMonth() + 1
  }-${date.getDate()}--${date.getHours()}.${date.getMinutes()}`;
  let api = 1 ? 'http://mxcus.net' : 'http://snow.test';
  return {
    base: '/',
    resolve: {
      alias: {
        '@': path.resolve(__dirname, './src'),
      },
    },

    plugins: [createVuePlugin(), vueJsx(), svgLoader(), viteCompression()],

    server: {
      port: 3008,
      host: '0.0.0.0',
      proxy: {
        '/api': api,
      },
    },
    build: {
      minify: 'terser', // 混淆器，terser构建后文件体积更小
      outDir: `bliendBox-web-${newDate}`, //指定输出路径
      cssCodeSplit: false, // 如果设置为false，整个项目中的所有 CSS 将被提取到一个 CSS 文件中
      terserOptions: {
        compress: {
          //生产环境时移除console
          drop_console: true,
          // drop_debugger: true,
        },
        output: {
          // 去掉注释内容
          comments: true,
        },
      },
      rollupOptions: {
        output: {
          manualChunks: {
            // 拆分代码，这个就是分包，配置完后自动按需加载，现在还比不上webpack的splitchunk，不过也能用了。
            vue: ['vue', 'vue-router', 'vuex'],
            // echarts: ['echarts'],
          },
        },
      },
    },
  };
});
