/* * @Author: shuishen 1109946754@qq.com * @Date: 2024-10-25 10:56:27 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2024-12-26 18:55:57 * @FilePath: \bigScreen\vite.config.js * @Description: * * Copyright (c) 2024 by shuishen, All Rights Reserved. */ import { defineConfig, loadEnv } from 'vite' import { resolve } from 'path' import vue from '@vitejs/plugin-vue' import DC from "@dvgis/vite-plugin-dc" import AutoImport from 'unplugin-auto-import/vite' import basicSsl from '@vitejs/plugin-basic-ssl' import { fa } from 'element-plus/es/locales.mjs' import viteCompression from 'vite-plugin-compression' // import vueDevTools from 'vite-plugin-vue-devtools' export default ({ mode, command }) => { const env = loadEnv(mode, process.cwd()) const { VITE_APP_ENV, VITE_APP_BASE } = env // 判断是打生产环境包 const isProd = VITE_APP_ENV === 'production' // 根据是否生产环境,动态设置压缩配置 const buildConfig = { outDir: 'zhyq', 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, build: buildConfig, plugins: [ vue(), DC(), basicSsl(), AutoImport({ imports: ["vue", "vue-router"], // 自动导入vue和vue-router相关函数 }), viteCompression({ filter: /\.(js|css|json|txt|ico|svg)(\?.*)?$/i, // 需要压缩的文件 threshold: 1024, // 文件容量大于这个值进行压缩 algorithm: 'gzip', // 压缩方式 ext: 'gz', // 后缀名 deleteOriginFile: false, // 压缩后是否删除压缩源文件 }), // vueDevTools() ], css: { preprocessorOptions: { scss: { api: 'modern-compiler', // 修改api调用方式 additionalData: `@use "@/styles/variables.scss" as *;` } } }, resolve: { alias: { '~': resolve(__dirname, './'), '@': resolve(__dirname, './src'), components: resolve(__dirname, './src/components'), styles: resolve(__dirname, './src/styles'), utils: resolve(__dirname, './src/utils'), store: resolve(__dirname, './src/store'), hooks: resolve(__dirname, './src/hooks'), }, }, server: { port: 668, https: true, host: '0.0.0.0', // hmr:{ // overlay:false // }, proxy: { '/zhyq3Dtile': { // target: 'http://localhost', target: 'https://wrj.shuixiongit.com/zhyq3Dtile', changeOrigin: true, rewrite: path => path.replace(/^\/zhyq3Dtile/, ''), }, '/panorama': { // target: 'http://localhost', target: 'http://vr.jxpskj.com:180', changeOrigin: true, rewrite: path => path.replace(/^\/panorama/, ''), }, '/zhyq-lc/newMx': { // target: 'http://localhost', target: 'https://wrj.shuixiongit.com/zhyq-lc/newMx', changeOrigin: true, rewrite: path => path.replace(/^\/zhyq-lc\/newMx/, ''), }, '/3Dtile/lcmx': { target: 'https://wrj.shuixiongit.com/3Dtile/lcmx', changeOrigin: true, rewrite: path => path.replace(/^\/3Dtile\/lcmx/, ''), }, '/zhyqhbapi': { // target: 'http://localhost:8082', target: 'https://wrj.shuixiongit.com/zhyqhbapi', changeOrigin: true, rewrite: path => path.replace(/^\/zhyqhbapi/, ''), }, }, }, }) } // https://vite.dev/config/