import {defineConfig, loadEnv} from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import {ElementPlusResolver} from 'unplugin-vue-components/resolvers' import {VitePWA} from 'vite-plugin-pwa'; export default defineConfig(({mode}) => { const env = loadEnv(mode, process.cwd(), 'VITE') return { server: { host: true, port: 3001, hmr: true, }, base: env.VITE_STATIC_URL || '/', plugins: [vue(), VitePWA({ registerType: 'autoUpdate', includeAssets: ['favicon.svg', 'robots.txt'], manifest: { name: 'Cloud Mail', short_name: 'Cloud Mail', background_color: '#FFFFFF', theme_color: '#FFFFFF', icons: [ { src: 'mail-192.png', sizes: '192x192', type: 'image/png', }, { src: 'mail-512.png', sizes: '512x512', type: 'image/png' }, { src: 'mail-512.png', sizes: '512x512', type: 'image/png', purpose: 'any' }, { src: 'mail-512.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' }, ], }, }), AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }) ], resolve: { alias: { '@': path.resolve(__dirname, 'src') } }, build: { target: 'es2022', outDir: env.VITE_OUT_DIR || 'dist', emptyOutDir: true, assetsInclude: ['**/*.json'] } } })