无人机管理后台前端(已迁走)
shuishen
2025-04-10 ffc954aa2ce1639b097c5d0bef30bf823f445736
vite.config.mjs
@@ -1,66 +1,77 @@
import { defineConfig, loadEnv } from 'vite';
import { resolve } from 'path';
import createVitePlugins from './vite/plugins';
/*
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2025-04-10 11:19:47
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2025-04-10 12:23:50
 * @FilePath: \drone-web-manage\vite.config.mjs
 * @Description:
 *
 * Copyright (c) 2025 by shuishen, All Rights Reserved.
 */
import { defineConfig, loadEnv } from 'vite'
import { resolve } from 'path'
import createVitePlugins from './vite/plugins'
// https://vitejs.dev/config/
export default ({ mode, command }) => {
  const env = loadEnv(mode, process.cwd());
  const { VITE_APP_ENV, VITE_APP_BASE, VITE_APP_URL } = env;
  // 判断是打生产环境包
  const isProd = VITE_APP_ENV === 'production';
    const env = loadEnv(mode, process.cwd())
    const { VITE_APP_ENV, VITE_APP_BASE, VITE_APP_URL } = env
    // 判断是打生产环境包
    const isProd = VITE_APP_ENV === 'production'
  // 根据是否生产环境,动态设置压缩配置
  const buildConfig = {
    outDir: 'manage',
    target: 'esnext',
    minify: isProd ? 'terser' : 'esbuild', // 根据环境选择压缩工具
  };
  // 如果是生产环境,添加Terser的配置
  if (isProd) {
    buildConfig.terserOptions = {
      compress: {
        drop_console: true, // 删除 console
        drop_debugger: true, // 删除 debugger
      },
      format: {
        comments: false, // 删除所有注释
      },
    };
  }
  return defineConfig({
    base: VITE_APP_BASE,
    define: {
      __VUE_I18N_FULL_INSTALL__: true,
      __VUE_I18N_LEGACY_API__: true,
      __INTLIFY_PROD_DEVTOOLS__: false,
    },
    server: {
      // port: 2888,
      // host: '192.168.1.178',
      proxy: {
        '/api': {
          // target: 'http://localhost',
          target: VITE_APP_URL,
          changeOrigin: true,
          rewrite: path => path.replace(/^\/api/, ''),
        },
      },
    },
    resolve: {
      alias: {
        '~': resolve(__dirname, './'),
        '@': resolve(__dirname, './src'),
        components: resolve(__dirname, './src/components'),
        styles: resolve(__dirname, './src/styles'),
        utils: resolve(__dirname, './src/utils'),
      },
    },
    plugins: createVitePlugins(env, command === 'build'),
    build: buildConfig,
    optimizeDeps: {
      esbuildOptions: {
    // 根据是否生产环境,动态设置压缩配置
    const buildConfig = {
        outDir: 'manage',
        target: 'esnext',
      },
    },
  });
};
        minify: isProd ? 'terser' : 'esbuild', // 根据环境选择压缩工具
    }
    // 如果是生产环境,添加Terser的配置
    if (isProd) {
        buildConfig.terserOptions = {
            compress: {
                drop_console: true, // 删除 console
                drop_debugger: true, // 删除 debugger
            },
            format: {
                comments: false, // 删除所有注释
            },
        }
    }
    return defineConfig({
        base: VITE_APP_BASE,
        define: {
            __VUE_I18N_FULL_INSTALL__: true,
            __VUE_I18N_LEGACY_API__: true,
            __INTLIFY_PROD_DEVTOOLS__: false,
        },
        server: {
            // port: 2888,
            // host: '192.168.1.178',
            proxy: {
                '/api': {
                    // target: 'http://localhost',
                    target: VITE_APP_URL,
                    changeOrigin: true,
                    rewrite: path => path.replace(/^\/api/, ''),
                },
            },
        },
        resolve: {
            alias: {
                '~': resolve(__dirname, './'),
                '@': resolve(__dirname, './src'),
                components: resolve(__dirname, './src/components'),
                styles: resolve(__dirname, './src/styles'),
                utils: resolve(__dirname, './src/utils'),
            },
        },
        plugins: createVitePlugins(env, command === 'build'),
        build: buildConfig,
        optimizeDeps: {
            esbuildOptions: {
                target: 'esnext',
            },
        },
    })
}