vite.config.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import AutoImport from 'unplugin-auto-import/vite'
  4. import Components from 'unplugin-vue-components/vite'
  5. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  6. import Icons from 'unplugin-icons/vite'
  7. import IconsResolver from 'unplugin-icons/resolvers'
  8. import path from 'path'
  9. // https://vitejs.dev/config/
  10. export default defineConfig({
  11. base: './',
  12. resolve: {
  13. alias: {
  14. '@': path.resolve(__dirname, './src')
  15. }
  16. },
  17. plugins: [
  18. vue(),
  19. AutoImport({
  20. resolvers: [
  21. ElementPlusResolver(),
  22. IconsResolver({
  23. prefix: 'Icon'
  24. })
  25. ],
  26. imports: [
  27. 'vue',
  28. {
  29. '@/api/index': [['default', '$api']]
  30. }
  31. ],
  32. dts: './src/auto-imports.d.ts'
  33. }),
  34. Components({
  35. resolvers: [
  36. ElementPlusResolver(),
  37. IconsResolver({
  38. enabledCollections: ['ep']
  39. })
  40. ]
  41. }),
  42. Icons({
  43. autoInstall: true
  44. })
  45. ],
  46. server: {
  47. port: 80,
  48. hmr: true,
  49. open: true,
  50. proxy: {
  51. '/api': {
  52. target: 'http://192.168.0.161',
  53. changeOrigin: true,
  54. rewrite: (path: string) => path.replace(/^\/api/, '')
  55. }
  56. }
  57. },
  58. build: {
  59. rollupOptions: {
  60. output: {
  61. entryFileNames: `[name].[hash].js`,
  62. chunkFileNames: `[name].[hash].js`,
  63. assetFileNames: `[name].[hash].[ext]`
  64. }
  65. }
  66. }
  67. })