import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' const vendorChunks = { vue: ['vue', 'vue-router', 'pinia'], elementPlus: ['element-plus', '@element-plus/icons-vue'], axios: ['axios'] } function manualChunks(id) { if (!id.includes('node_modules')) { return } for (const [chunkName, packages] of Object.entries(vendorChunks)) { if (packages.some((pkg) => id.includes(`/node_modules/${pkg}/`) || id.includes(`\\node_modules\\${pkg}\\`))) { return chunkName } } return 'vendor' } export default defineConfig({ plugins: [ vue(), AutoImport({ imports: ['vue', 'vue-router', 'pinia'], resolvers: [ ElementPlusResolver({ importStyle: 'css' }) ] }), Components({ resolvers: [ ElementPlusResolver({ importStyle: 'css' }) ] }) ], build: { rollupOptions: { output: { manualChunks } } }, server: { host: '0.0.0.0', port: 5173 } })