vite.config.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import vueJsx from '@vitejs/plugin-vue-jsx'
  5. //图片压缩工具
  6. import { ViteImageOptimizer } from 'vite-plugin-image-optimizer'
  7. //打包分析工具
  8. // import { visualizer } from 'rollup-plugin-visualizer'
  9. import unoCss from 'unocss/vite'
  10. //集成tailwind中类样式 preseUno
  11. import { presetUno } from 'unocss'
  12. //将rem转换为px设置
  13. import presetRemToPx from '@unocss/preset-rem-to-px'
  14. import AutoImport from 'unplugin-auto-import/vite'
  15. import Components from 'unplugin-vue-components/vite'
  16. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  17. import ElementPlus from 'unplugin-element-plus/vite'
  18. // https://vitejs.dev/config/
  19. export default defineConfig({
  20. plugins: [
  21. vue(),
  22. vueJsx(),
  23. unoCss({
  24. presets: [
  25. presetUno(),
  26. presetRemToPx({
  27. baseFontSize: 4
  28. })
  29. ],
  30. //规则
  31. rules: [
  32. [
  33. 'menu_active',
  34. {
  35. color: '#1870ff',
  36. 'background-image': 'url("@/assets/images/Layout/选中模式.png")',
  37. 'background-size': '100% 100%'
  38. }
  39. ],
  40. [
  41. /^bg-\[(.*)\]$/,
  42. ([, url]) => ({
  43. 'background-image': `url('@/${url}')`,
  44. 'background-size': '100% 100%'
  45. })
  46. ]
  47. ],
  48. //组合样式
  49. shortcuts: {}
  50. }),
  51. ElementPlus({}),
  52. AutoImport({
  53. resolvers: [ElementPlusResolver()]
  54. }),
  55. Components({
  56. resolvers: [ElementPlusResolver()]
  57. }),
  58. ViteImageOptimizer()
  59. // visualizer({ open: true })
  60. ],
  61. base: './',
  62. resolve: {
  63. alias: {
  64. '@': fileURLToPath(new URL('./src', import.meta.url))
  65. }
  66. },
  67. server: {
  68. host: true,
  69. cors: true,
  70. open: true,
  71. proxy: {
  72. '/api': {
  73. target: 'http://192.168.110.235:8091',
  74. changeOrigin: true,
  75. rewrite: (path) => path.replace(/^\/api/, '')
  76. }
  77. }
  78. },
  79. css: {
  80. preprocessorOptions: {
  81. scss: {
  82. additionalData: `@import "./src/styles/variable.scss";`
  83. }
  84. }
  85. }
  86. })