import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import { resolve } from 'path'; export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': resolve(__dirname, 'src'), }, }, css: { preprocessorOptions: { scss: { api: 'modern', additionalData: `@use "@/assets/styles/variables.scss" as *;`, }, }, }, server: { port: 5173, proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true, }, }, }, build: { outDir: 'dist', sourcemap: false, rollupOptions: { output: { chunkFileNames: 'assets/js/[name]-[hash].js', entryFileNames: 'assets/js/[name]-[hash].js', assetFileNames: (chunkInfo) => { const info = chunkInfo.name || ''; if (info.endsWith('.css')) return 'assets/css/[name]-[hash][extname]'; return 'assets/[ext]/[name]-[hash][extname]'; }, manualChunks(id) { if (id.includes('node_modules')) { if (id.includes('element-plus')) return 'element-plus'; if (id.includes('@element-plus/icons-vue')) return 'icons'; if (id.includes('vue') || id.includes('vue-router') || id.includes('pinia')) return 'vue-vendor'; return 'vendor'; } }, }, }, }, });