electron.vite.config.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { resolve } from 'path'
  2. import { defineConfig } from 'electron-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 tailwindcss from '@tailwindcss/vite'
  8. import IconsResolver from 'unplugin-icons/resolver'
  9. export default defineConfig({
  10. main: {
  11. build: {
  12. rollupOptions: {
  13. input: {
  14. index: resolve(__dirname, 'electron/main/index.ts')
  15. }
  16. }
  17. }
  18. },
  19. preload: {
  20. build: {
  21. rollupOptions: {
  22. input: {
  23. index: resolve(__dirname, 'electron/preload/index.ts')
  24. }
  25. }
  26. }
  27. },
  28. renderer: {
  29. root: '.',
  30. build: {
  31. rollupOptions: {
  32. input: {
  33. index: resolve(__dirname, 'index.html')
  34. }
  35. }
  36. },
  37. resolve: {
  38. alias: {
  39. '@': resolve('src')
  40. }
  41. },
  42. plugins: [
  43. vue(),
  44. tailwindcss(),
  45. AutoImport({
  46. resolvers: [
  47. // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)
  48. ElementPlusResolver(),
  49. // 自动导入图标组件
  50. IconsResolver({})
  51. ],
  52. imports: ['vue', 'vue-router', '@vueuse/core'],
  53. dts: 'src/types/auto-imports.d.ts' // 自动生成 auto-imports.d.ts
  54. }),
  55. Components({
  56. resolvers: [
  57. ElementPlusResolver(),
  58. IconsResolver({
  59. // 图标库,其他图标库 https://icon-sets.iconify.design/
  60. enabledCollections: ['ep']
  61. })
  62. ],
  63. dirs: ['src/components', 'src/**/components', 'src/**/components/**/*.vue'],
  64. dts: 'src/types/auto-components.d.ts' // 自动生成 components.d.ts
  65. })
  66. ],
  67. optimizeDeps: {
  68. include: [
  69. 'vue',
  70. 'vue-router',
  71. 'axios',
  72. '@vueuse/core',
  73. 'nprogress',
  74. 'element-plus/es/components/tooltip/style/css',
  75. 'element-plus/es/components/tabs/style/css',
  76. 'element-plus/es/components/tab-pane/style/css',
  77. 'element-plus/es/components/select/style/css',
  78. 'element-plus/es/components/option/style/css',
  79. 'element-plus/es/components/input/style/css',
  80. 'element-plus/es/components/row/style/css',
  81. 'element-plus/es/components/slider/style/css',
  82. 'element-plus/es/components/col/style/css',
  83. 'element-plus/es/components/switch/style/css',
  84. 'element-plus/es/components/checkbox/style/css',
  85. '@vue/reactivity',
  86. 'element-plus/es/components/config-provider/style/css',
  87. 'element-plus/es/locale/lang/zh-cn'
  88. ]
  89. }
  90. }
  91. })