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' import { resolve } from 'path' // https://vitejs.dev/config/ // https://tauri.app/start/frontend/vite/ export default defineConfig({ plugins: [ vue(), AutoImport({ imports: ['vue', 'vue-i18n', 'pinia'], resolvers: [ElementPlusResolver()], dts: 'src/auto-imports.d.ts' }), Components({ resolvers: [ElementPlusResolver()], dts: 'src/components.d.ts' }) ], resolve: { alias: { '@': resolve(__dirname, 'src'), '@shared': resolve(__dirname, 'shared') } }, css: { preprocessorOptions: { scss: { api: 'modern-compiler', additionalData: `@use "@/styles/variables.scss" as *;` } } }, // Vite options tailored for Tauri development clearScreen: false, server: { port: 5173, strictPort: true, watch: { // 告诉 vite 忽略监视 src-tauri 目录 ignored: ['**/src-tauri/**'] } }, // 生产环境配置 build: { outDir: 'dist', emptyOutDir: true, // Tauri 使用 Chromium on Windows 和 WebKit on macOS/Linux target: process.env.TAURI_ENV_PLATFORM === 'windows' ? 'chrome105' : 'safari13', // 在 debug 构建时不压缩 minify: !process.env.TAURI_ENV_DEBUG ? 'esbuild' : false, // 在 debug 构建时生成 sourcemap sourcemap: !!process.env.TAURI_ENV_DEBUG }, // 环境变量前缀 envPrefix: ['VITE_', 'TAURI_ENV_'] })