vite.config.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { fileURLToPath, URL } from 'url'
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import vueJsx from '@vitejs/plugin-vue-jsx'
  5. import AutoImport from 'unplugin-auto-import/vite'
  6. import Components from 'unplugin-vue-components/vite'
  7. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  8. import { createStyleImportPlugin, ElementPlusResolve } from 'vite-plugin-style-import'
  9. import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
  10. import vueSetupExtend from 'vite-plugin-vue-setup-extend'
  11. // https://vitejs.dev/config/
  12. export default defineConfig({
  13. // base: '/admin/',
  14. server: {
  15. host: '0.0.0.0'
  16. },
  17. plugins: [
  18. vue(),
  19. vueJsx(),
  20. AutoImport({
  21. imports: ['vue', 'vue-router'],
  22. resolvers: [ElementPlusResolver()],
  23. eslintrc: {
  24. enabled: true
  25. }
  26. }),
  27. Components({
  28. directoryAsNamespace: true,
  29. resolvers: [ElementPlusResolver()]
  30. }),
  31. createStyleImportPlugin({
  32. resolves: [ElementPlusResolve()]
  33. }),
  34. createSvgIconsPlugin({
  35. // 配置路劲在你的src里的svg存放文件
  36. iconDirs: [fileURLToPath(new URL('./src/assets/icons', import.meta.url))],
  37. symbolId: 'local-icon-[dir]-[name]'
  38. }),
  39. vueSetupExtend()
  40. ],
  41. resolve: {
  42. alias: {
  43. '@': fileURLToPath(new URL('./src', import.meta.url))
  44. }
  45. },
  46. build: {
  47. rollupOptions: {
  48. manualChunks(id) {
  49. if (id.includes('node_modules')) {
  50. return id.toString().split('node_modules/')[1].split('/')[0].toString()
  51. }
  52. }
  53. }
  54. }
  55. })