vite.config.ts 1.8 KB

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