vite.config.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { URL, fileURLToPath } from 'node:url'
  2. import { defineConfig, loadEnv } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import Components from 'unplugin-vue-components/vite'
  5. import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
  6. import vueJsx from '@vitejs/plugin-vue-jsx'
  7. import vitePluginBuildId from 'vite-plugin-build-id'
  8. import svgLoader from 'vite-svg-loader'
  9. import AutoImport from 'unplugin-auto-import/vite'
  10. import DefineOptions from 'unplugin-vue-define-options/vite'
  11. // https://vitejs.dev/config/
  12. export default defineConfig(({ mode }) => {
  13. // eslint-disable-next-line n/prefer-global/process
  14. const env = loadEnv(mode, process.cwd(), '')
  15. return {
  16. base: './',
  17. resolve: {
  18. alias: {
  19. '@': fileURLToPath(new URL('./src', import.meta.url)),
  20. },
  21. extensions: [
  22. '.mjs',
  23. '.js',
  24. '.ts',
  25. '.jsx',
  26. '.tsx',
  27. '.json',
  28. '.vue',
  29. '.less',
  30. ],
  31. },
  32. plugins: [
  33. vue(),
  34. vueJsx(),
  35. vitePluginBuildId(),
  36. svgLoader(),
  37. Components({
  38. resolvers: [AntDesignVueResolver({ importStyle: false })],
  39. directoryAsNamespace: true,
  40. }),
  41. AutoImport({
  42. imports: ['vue', 'vue-router', 'pinia'],
  43. vueTemplate: true,
  44. }),
  45. DefineOptions(),
  46. ],
  47. css: {
  48. preprocessorOptions: {
  49. less: {
  50. modifyVars: {
  51. 'border-radius-base': '5px',
  52. },
  53. javascriptEnabled: true,
  54. },
  55. },
  56. },
  57. server: {
  58. proxy: {
  59. '/api': {
  60. target: env.VITE_PROXY_TARGET || 'http://localhost:9000',
  61. changeOrigin: true,
  62. secure: false,
  63. ws: true,
  64. },
  65. },
  66. },
  67. build: {
  68. chunkSizeWarningLimit: 1000,
  69. },
  70. }
  71. })