vite.config.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import {defineConfig} from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import {resolve} from "path";
  4. import config from "./src/config";
  5. import { chunkSplitPlugin } from 'vite-plugin-chunk-split';
  6. import AutoImport from 'unplugin-auto-import/vite'
  7. import Components from 'unplugin-vue-components/vite'
  8. import {ElementPlusResolver} from 'unplugin-vue-components/resolvers'
  9. // https://vitejs.dev/config/
  10. export default defineConfig({
  11. css: {
  12. preprocessorOptions: {
  13. scss: {
  14. additionalData: `@import "./src/styles/app/_var.scss";`
  15. }
  16. }
  17. },
  18. resolve: {
  19. alias: {
  20. '~src': `${resolve(__dirname, './src')}`,
  21. '~ass': resolve(__dirname, './src/assets'),
  22. '~com': `${resolve(__dirname, './src/components')}`,
  23. '~api': resolve(__dirname, './src/api/modules'),
  24. '~sto': resolve(__dirname, './src/store/modules'),
  25. '~uti': resolve(__dirname, './src/utils'),
  26. '~style': resolve(__dirname, './src/styles/page')
  27. }
  28. },
  29. plugins: [
  30. vue(),
  31. chunkSplitPlugin({
  32. strategy: 'unbundle'
  33. }),
  34. AutoImport({
  35. resolvers: [ElementPlusResolver()],
  36. }),
  37. Components({
  38. resolvers: [ElementPlusResolver()],
  39. }),
  40. ],
  41. server: {
  42. ...config.vite,
  43. proxy: {
  44. '/api': {
  45. ws: true,
  46. changeOrigin: true,
  47. target: config.target,
  48. rewrite: (path) => path.replace(new RegExp('^/api'), '/'),
  49. }
  50. }
  51. },
  52. })