vite.config.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { defineConfig } from 'vite';
  2. import vue from '@vitejs/plugin-vue';
  3. import { resolve } from 'path';
  4. import UnoCSS from 'unocss/vite';
  5. import AutoImport from 'unplugin-auto-import/vite';
  6. import Components from 'unplugin-vue-components/vite';
  7. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
  8. import { ViteImageOptimizer } from 'vite-plugin-image-optimizer';
  9. // https://vite.dev/config/
  10. export default defineConfig({
  11. base: './',
  12. plugins: [
  13. vue(),
  14. UnoCSS(),
  15. // 自动引入组件
  16. AutoImport({
  17. resolvers: [ElementPlusResolver()],
  18. }),
  19. Components({
  20. resolvers: [ElementPlusResolver()],
  21. }),
  22. ViteImageOptimizer({
  23. logStats: true,
  24. ansiColors: true,
  25. test: /\.(jpe?g|png|gif|tiff|webp|svg|avif)$/i,
  26. includePublic: true,
  27. svg: {
  28. multipass: true,
  29. plugins: [
  30. {
  31. name: 'preset-default',
  32. params: {
  33. overrides: {
  34. cleanupNumericValues: false,
  35. cleanupIds: {
  36. minify: false,
  37. remove: false,
  38. },
  39. convertPathData: false,
  40. },
  41. },
  42. },
  43. 'sortAttrs',
  44. {
  45. name: 'addAttributesToSVGElement',
  46. params: {
  47. attributes: [{ xmlns: 'http://www.w3.org/2000/svg' }],
  48. },
  49. },
  50. ],
  51. },
  52. png: {
  53. quality: 80,
  54. },
  55. jpeg: {
  56. quality: 80,
  57. },
  58. jpg: {
  59. quality: 80,
  60. },
  61. webp: {
  62. lossless: true,
  63. },
  64. }),
  65. ],
  66. resolve: {
  67. alias: {
  68. '@': resolve(__dirname, 'src'),
  69. },
  70. },
  71. server: {
  72. proxy: {
  73. '/api/api': {
  74. // target: 'http://172.18.50.86:8080',
  75. // target: 'http://172.26.28.188:8080',
  76. target: 'http://10.0.0.200:7000',
  77. changeOrigin: true,
  78. rewrite: (path) => path.replace('/api/api', '/api'),
  79. },
  80. },
  81. },
  82. });