vite.config.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig, loadEnv } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import AutoImport from 'unplugin-auto-import/vite'
  5. import Components from 'unplugin-vue-components/vite'
  6. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  7. import Icons from 'unplugin-icons/vite'
  8. import IconsResolver from 'unplugin-icons/resolver'
  9. // https://vitejs.dev/config/
  10. export default defineConfig(({ mode }) => {
  11. const env = loadEnv(mode, process.cwd())
  12. return {
  13. base: env.VITE_BASE_URL || '/',
  14. resolve: {
  15. alias: {
  16. '@': fileURLToPath(new URL('./src', import.meta.url))
  17. }
  18. },
  19. plugins: [
  20. vue(),
  21. AutoImport({
  22. resolvers: [
  23. ElementPlusResolver(),
  24. IconsResolver({
  25. prefix: 'Icon'
  26. })
  27. ],
  28. imports: [
  29. 'vue',
  30. // 自定义全局引入
  31. {
  32. // 全局引入"src/api/index.ts"的`default`导出,注册为全局变量`api`
  33. // 相当于在每个ts/vue文件中执行了一次 `import api from "@/api/index"`;
  34. '@/api/index': [['default', '$api']]
  35. }
  36. ],
  37. dts: './src/auto-imports.d.ts'
  38. }),
  39. Components({
  40. resolvers: [
  41. ElementPlusResolver(), // 自动注册图标组件
  42. IconsResolver({
  43. enabledCollections: ['ep']
  44. })
  45. ]
  46. }),
  47. Icons({
  48. autoInstall: true
  49. })
  50. ],
  51. server: {
  52. port: 80,
  53. hmr: true,
  54. open: true,
  55. // 设置 https 代理
  56. proxy: {
  57. '/api': {
  58. target: 'http://192.168.0.161',
  59. changeOrigin: true,
  60. rewrite: (path: string) => path.replace(/^\/api/, '')
  61. }
  62. }
  63. }
  64. }
  65. })