无人机管理后台前端(已迁走)
罗广辉
2025-10-11 02409bfbe15f22fc3b5dccadabfd860a660a49d9
vite.config.mjs
@@ -1,27 +1,20 @@
import {
  defineConfig,
  loadEnv
} from 'vite';
import { defineConfig, loadEnv } from 'vite'
import { resolve } from 'path'
import createVitePlugins from './vite/plugins';
import createVitePlugins from './vite/plugins'
import postCssPxToRem from 'postcss-pxtorem'
// https://vitejs.dev/config/
export default ({
  mode,
  command
}) => {
export default ({ mode, command }) => {
  const env = loadEnv(mode, process.cwd())
  const {
    VITE_APP_ENV,
    VITE_APP_BASE
  } = env
  const { VITE_APP_ENV, VITE_APP_BASE, VITE_APP_URL, VITE_APP_MAP_TILE_URL } = env
  // 判断是打生产环境包
  const isProd = VITE_APP_ENV === 'production'
  // 根据是否生产环境,动态设置压缩配置
  const buildConfig = {
    outDir: 'manage',
    target: 'esnext',
    minify: isProd ? 'terser' : 'esbuild', // 根据环境选择压缩工具
  };
  }
  // 如果是生产环境,添加Terser的配置
  if (isProd) {
@@ -31,28 +24,35 @@
        drop_debugger: true, // 删除 debugger
      },
      format: {
        comments: false // 删除所有注释
      }
    };
        comments: false, // 删除所有注释
      },
    }
  }
  return defineConfig({
    base: VITE_APP_BASE,
    define: {
      __VUE_I18N_FULL_INSTALL__: true,
      __VUE_I18N_LEGACY_API__: true,
      __INTLIFY_PROD_DEVTOOLS__: false
      __INTLIFY_PROD_DEVTOOLS__: false,
    },
    server: {
      port: 2888,
      port: 5174,
      // host: '192.168.1.178',
      proxy: {
        '/api': {
          target: 'http://localhost',
          //target: 'https://saber3.bladex.cn/api',
          target: VITE_APP_URL,
          changeOrigin: true,
          rewrite: path => path.replace(/^\/api/, ''),
        },
        '/3Dtile': {
          target: VITE_APP_MAP_TILE_URL,
          changeOrigin: true,
          rewrite: path => path.replace(/^\/3Dtile/, ''),
        },
      },
    },
    assetsInclude: ['**/*.gltf'],
    resolve: {
      alias: {
        '~': resolve(__dirname, './'),
@@ -62,6 +62,27 @@
        utils: resolve(__dirname, './src/utils'),
      },
    },
    css: {
      preprocessorOptions: {
        scss: {
          api: 'modern-compiler',
          additionalData: `@use "@/styles/variables.scss" as *;`,
        },
      },
      postcss: {
        plugins: [
          postCssPxToRem({
            rootValue: 10, // 指定转换基准值,通常是设计稿宽度的1/10
            propList: ['*'], // 可以从px转换为rem的属性,这里是所有属性
            unitPrecision: 5, // 允许REM单位增长到的十进制数
            selectorBlackList: [], // 选择器黑名单,忽略转换的选择器
            replace: true, // 替换包含rem的规则,而不是添加回退
            mediaQuery: false, // 允许在媒体查询中转换px
            minPixelValue: 0 // 设置要替换的最小像素值
          }),
        ]
      }
    },
    plugins: createVitePlugins(env, command === 'build'),
    build: buildConfig,
    optimizeDeps: {
@@ -69,5 +90,5 @@
        target: 'esnext',
      },
    },
  });
};
  })
}