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';
import legacy from '@vitejs/plugin-legacy';
import eslintPlugin from 'vite-plugin-eslint';
// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
  // 获取打包时间--
  const date = new Date();
  const newDate = `${date.getFullYear()}-${
    date.getMonth() + 1
  }-${date.getDate()}--${date.getHours()}.${date.getMinutes()}`;
  const api = 1 ? 'http://45.207.61.22:91' : 'http://ai-gpt.test';
  return {
    base: '/',
    resolve: {
      alias: {
        '@': path.resolve(__dirname, './src'),
        // web3: 'web3/dist/web3.min.js',
      },
    },
    server: {
      port: 3008,
      host: '0.0.0.0',
      proxy: {
        '/api': api,
        '/video': 'http://192.168.1.19:5000',
        '/files': {
          target: 'https://chensav.oss-cn-shenzhen.aliyuncs.com', // 代理的目标地址
          changeOrigin: true, // 开发模式，默认的origin是真实的 origin:localhost:3000 代理服务会把origin修改为目标地址
          // secure: true, // 是否https接口
          // ws: true, // 是否代理websockets
          rewrite: (path) => path.replace(/^\/files/, ''),
        },
      },
    },
    plugins: [
      createVuePlugin(),
      vueJsx(),
      svgLoader(),
      viteCompression(),
      eslintPlugin({
        include: ['src/**/*.ts', 'src/**/*.vue', 'src/*.ts', 'src/*.vue'],
      }),
      legacy({
        targets: ['defaults', 'not IE 11'],
      }),
    ],
    build: {
      minify: 'terser', // 混淆器，terser构建后文件体积更小
      outDir: mode != 'app' ? `GPT-AI-${newDate}` : 'dist', //指定输出路径
      cssCodeSplit: false, // 如果设置为false，整个项目中的所有 CSS 将被提取到一个 CSS 文件中
      terserOptions: {
        compress: {
          //生产环境时移除console
          drop_console: true,
          // drop_debugger: true,
        },
        output: {
          // 去掉注释内容
          comments: false,
        },
      },
      // http-server -P http://142.194.143.229
      // target: 'es2015',
      rollupOptions: {
        output: {
          manualChunks: {
            // 拆分代码，这个就是分包，配置完后自动按需加载
            vue: ['vue', 'vue-router', 'vuex'],
          },
        },
      },
    },
    esbuild: false,
  };
});
