vite.config.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { defineConfig, loadEnv } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import path from 'path'
  4. import UnoCss from 'unocss/vite'
  5. import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
  6. import AutoImport from 'unplugin-auto-import/vite'
  7. import Components from 'unplugin-vue-components/vite'
  8. import IconsResolver from 'unplugin-icons/resolver'
  9. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  10. import monacoEditorPlugin from 'vite-plugin-monaco-editor'
  11. import vueJsx from '@vitejs/plugin-vue-jsx'
  12. // https://vite.dev/config/
  13. export default defineConfig(({ mode }) => {
  14. const env = loadEnv(mode, process.cwd())
  15. return {
  16. base: './',
  17. build: {
  18. outDir: 'app-agent'
  19. },
  20. plugins: [
  21. vue(),
  22. vueJsx(),
  23. UnoCss(),
  24. createSvgIconsPlugin({
  25. // 指定存放 SVG 的文件夹
  26. iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
  27. symbolId: 'svg-icon-[dir]-[name]'
  28. }),
  29. // 代码编辑器
  30. (monacoEditorPlugin as any).default({
  31. languageWorkers: ['editorWorkerService', 'typescript', 'json', 'html', 'css']
  32. }),
  33. // 按需求加载(模板)
  34. AutoImport({
  35. imports: ['vue'],
  36. resolvers: [
  37. IconsResolver({
  38. prefix: 'Icon'
  39. }),
  40. ElementPlusResolver()
  41. ],
  42. dts: 'auto-imports.d.ts'
  43. }),
  44. Components({
  45. resolvers: [
  46. // 自动注册图标组件
  47. IconsResolver({
  48. enabledCollections: ['ep']
  49. }),
  50. ElementPlusResolver()
  51. ],
  52. dts: 'components.d.ts'
  53. })
  54. ],
  55. resolve: {
  56. alias: {
  57. '@': path.resolve(__dirname, 'src')
  58. }
  59. },
  60. server: {
  61. host: true,
  62. port: 5174,
  63. proxy: {
  64. '/api': {
  65. target: `http://${env.VITE_BASE_URL}`,
  66. changeOrigin: true,
  67. rewrite: (path) => path.replace(/^\/api/, '/api')
  68. }
  69. }
  70. }
  71. }
  72. })