vite.config.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import AutoImport from 'unplugin-auto-import/vite'
  4. import Components from 'unplugin-vue-components/vite'
  5. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  6. import { resolve } from 'path'
  7. // https://vitejs.dev/config/
  8. // https://tauri.app/start/frontend/vite/
  9. export default defineConfig({
  10. plugins: [
  11. vue(),
  12. AutoImport({
  13. imports: ['vue', 'vue-i18n', 'pinia'],
  14. resolvers: [ElementPlusResolver()],
  15. dts: 'src/auto-imports.d.ts'
  16. }),
  17. Components({
  18. resolvers: [ElementPlusResolver()],
  19. dts: 'src/components.d.ts'
  20. })
  21. ],
  22. resolve: {
  23. alias: {
  24. '@': resolve(__dirname, 'src'),
  25. '@shared': resolve(__dirname, 'shared')
  26. }
  27. },
  28. css: {
  29. preprocessorOptions: {
  30. scss: {
  31. api: 'modern-compiler',
  32. additionalData: `@use "@/styles/variables.scss" as *;`
  33. }
  34. }
  35. },
  36. // Vite options tailored for Tauri development
  37. clearScreen: false,
  38. server: {
  39. port: 5173,
  40. strictPort: true,
  41. watch: {
  42. // 告诉 vite 忽略监视 src-tauri 目录
  43. ignored: ['**/src-tauri/**']
  44. }
  45. },
  46. // 生产环境配置
  47. build: {
  48. outDir: 'dist',
  49. emptyOutDir: true,
  50. // Tauri 使用 Chromium on Windows 和 WebKit on macOS/Linux
  51. target: process.env.TAURI_ENV_PLATFORM === 'windows' ? 'chrome105' : 'safari13',
  52. // 在 debug 构建时不压缩
  53. minify: !process.env.TAURI_ENV_DEBUG ? 'esbuild' : false,
  54. // 在 debug 构建时生成 sourcemap
  55. sourcemap: !!process.env.TAURI_ENV_DEBUG
  56. },
  57. // 环境变量前缀
  58. envPrefix: ['VITE_', 'TAURI_ENV_']
  59. })