import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' // https://vite.dev/config/ export default defineConfig({ plugins: [ vue(), vueDevTools(), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, }, build: { // Optimize for SEO and performance cssCodeSplit: true, minify: 'terser', terserOptions: { compress: { drop_console: true, drop_debugger: true } }, rollupOptions: { output: { // Optimize chunk splitting for better caching manualChunks: { 'vue-vendor': ['vue', 'vue-router'], 'ui-components': [ './src/components/ProjectCard.vue', './src/components/TechBadge.vue', './src/components/ContactMethod.vue' ] }, // Use content hash for better caching chunkFileNames: 'assets/js/[name]-[hash].js', entryFileNames: 'assets/js/[name]-[hash].js', assetFileNames: 'assets/[ext]/[name]-[hash].[ext]' } }, // Enable source maps for better debugging sourcemap: false, // Increase chunk size warning limit chunkSizeWarningLimit: 1000 }, // Optimize dependencies optimizeDeps: { include: ['vue', 'vue-router'] } })