vite.config.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig } 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({
  11. base: `/new/`,
  12. resolve: {
  13. alias: {
  14. '@': fileURLToPath(new URL('./src', import.meta.url))
  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. {
  30. // 全局引入"src/api/index.ts"的`default`导出,注册为全局变量`api`
  31. // 相当于在每个ts/vue文件中执行了一次 `import api from "@/api/index"`;
  32. '@/api/index': [['default', '$api']]
  33. }
  34. ],
  35. dts: './src/auto-imports.d.ts'
  36. }),
  37. Components({
  38. resolvers: [
  39. ElementPlusResolver(), // 自动注册图标组件
  40. IconsResolver({
  41. enabledCollections: ['ep']
  42. })
  43. ]
  44. }),
  45. Icons({
  46. autoInstall: true
  47. })
  48. ],
  49. server: {
  50. port: 80,
  51. hmr: true,
  52. open: true,
  53. // 设置 https 代理
  54. proxy: {
  55. '/api': {
  56. target: 'http://192.168.0.161',
  57. changeOrigin: true,
  58. rewrite: (path: string) => path.replace(/^\/api/, '')
  59. }
  60. }
  61. },
  62. build: {
  63. assetsDir: 'assets',
  64. rollupOptions: {
  65. output: {
  66. entryFileNames: `assets/[name].[hash].js`,
  67. chunkFileNames: `assets/[name].[hash].js`,
  68. assetFileNames: `assets/[name].[hash].[ext]`
  69. }
  70. }
  71. }
  72. })