From 2ca94de8ede18ac07ccfd8dec7b6f6a707adde9b Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Mon, 01 Sep 2025 11:20:24 +0800
Subject: [PATCH] Merge branch 'refs/heads/feature/v5.0/5.0.5' into patch_management

---
 vite.config.mjs |  145 ++++++++++++++++++++++++++----------------------
 1 files changed, 78 insertions(+), 67 deletions(-)

diff --git a/vite.config.mjs b/vite.config.mjs
index fab0ae2..7c1f6b1 100644
--- a/vite.config.mjs
+++ b/vite.config.mjs
@@ -1,77 +1,88 @@
-/*
- * @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'
-
+import postCssPxToRem from 'postcss-pxtorem'
 // 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', // 根据环境选择压缩工具
+  // 根据是否生产环境,动态设置压缩配置
+  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, // 删除所有注释
+      },
     }
-
-    // 如果是生产环境,添加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: 5174,
+      // host: '192.168.1.178',
+      proxy: {
+        '/api': {
+          target: VITE_APP_URL,
+          changeOrigin: true,
+          rewrite: path => path.replace(/^\/api/, ''),
         }
-    }
-    return defineConfig({
-        base: VITE_APP_BASE,
-        define: {
-            __VUE_I18N_FULL_INSTALL__: true,
-            __VUE_I18N_LEGACY_API__: true,
-            __INTLIFY_PROD_DEVTOOLS__: false,
+      },
+    },
+    assetsInclude: ['**/*.gltf'],
+    resolve: {
+      alias: {
+        '~': resolve(__dirname, './'),
+        '@': resolve(__dirname, './src'),
+        components: resolve(__dirname, './src/components'),
+        styles: resolve(__dirname, './src/styles'),
+        utils: resolve(__dirname, './src/utils'),
+      },
+    },
+    css: {
+      preprocessorOptions: {
+        scss: {
+          api: 'modern-compiler',
+          additionalData: `@use "@/styles/variables.scss" as *;`,
         },
-        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',
-            },
-        },
-    })
+      },
+      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: {
+      esbuildOptions: {
+        target: 'esnext',
+      },
+    },
+  })
 }

--
Gitblit v1.9.3