| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- // Plugins
 
- import Components from 'unplugin-vue-components/vite'
 
- import Vue from '@vitejs/plugin-vue'
 
- import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'
 
- // import ViteFonts from 'unplugin-fonts/vite'
 
- import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
 
- import AutoImport from 'unplugin-auto-import/vite'
 
- import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
 
- import { terser } from 'rollup-plugin-terser'
 
- import path from 'path'
 
- import compression from 'vite-plugin-compression'
 
- // Utilities
 
- import { defineConfig } from 'vite'
 
- import { fileURLToPath, URL } from 'node:url'
 
- // https://vitejs.dev/config/
 
- export default defineConfig({
 
-   plugins: [
 
-     Vue({
 
-       template: { transformAssetUrls }
 
-     }),
 
-     // https://github.com/vuetifyjs/vuetify-loader/tree/master/packages/vite-plugin#readme
 
-     Vuetify(),
 
-     Components({
 
-       dts: true,
 
-       resolvers: [
 
-         (name) => {
 
-           if (name.startsWith('Base')) {
 
-             return { importName: name.slice(4), path: `@/components/CtVuetify/${name}.vue` }
 
-           }
 
-         },
 
-         ElementPlusResolver(),
 
-       ]
 
-     }),
 
-     compression({  
 
-       verbose: true,  
 
-       disable: false,  
 
-       threshold: 10240, // 只会压缩大于 10kb 的文件  
 
-       algorithm: 'gzip', // 可以选择 gzip 或 brotli  
 
-       ext: '.gz', // 输出后缀  
 
-     }),
 
-     AutoImport({
 
-       resolvers: [ElementPlusResolver()],
 
-     }),
 
-     createSvgIconsPlugin({
 
-       iconDirs: [path.resolve(process.cwd(), 'src/assets/svg')],
 
-       // symbolId: 'icon-[dir]-[name]',
 
-     })
 
-     // ViteFonts({
 
-     //   google: {
 
-     //     // families: [{
 
-     //     //   name: 'Roboto',
 
-     //     //   styles: 'wght@100;300;400;500;700;900',
 
-     //     // }],
 
-     //   },
 
-     // }),
 
-   ],
 
-   define: { 'process.env': {} },
 
-   resolve: {
 
-     alias: {
 
-       '@': fileURLToPath(new URL('./src', import.meta.url))
 
-     },
 
-     extensions: [
 
-       '.js',
 
-       '.json',
 
-       '.jsx',
 
-       '.mjs',
 
-       '.ts',
 
-       '.tsx',
 
-       '.vue',
 
-     ],
 
-   },
 
-   build: {
 
-     sourcemap: false, // 生产环境禁用源映射
 
-     rollupOptions: {
 
-       plugins: [terser({ ecma: 2020 })], // 启用 terser 进行代码压缩
 
-       output: {
 
-         // 设置静态资源引用的基础路径
 
-         assetFileNames: 'assets/[name].[hash].[ext]',
 
-         chunkFileNames: 'chunks/[name].[hash].js',
 
-         entryFileNames: '[name].[hash].js',
 
-       },
 
-       watch: true // 允许浏览器在源码变化时自动刷新
 
-     },
 
-   },
 
-   // 配置静态资源处理
 
-   publicDir: 'public', // 设置静态资源目录
 
-   assetsDir: 'assets', // 设置构建后的静态资源目录
 
-   base: '/', // 设置应用的基本URL
 
-   server: {
 
-     port: 3000
 
-   }
 
-   // configureWebpack: {
 
-   //   output: {
 
-   //     filename: 'js/[name].' + new Date().getTime() + '.js',
 
-   //     chunkFilename: 'js/[name].' + new Date().getTime() + '.js'
 
-   //   }
 
-   // }
 
- })
 
 
  |