vite.config.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import electron from 'vite-plugin-electron'
  4. import renderer from 'vite-plugin-electron-renderer'
  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 { resolve } from 'path'
  9. export default defineConfig({
  10. plugins: [
  11. vue(),
  12. AutoImport({
  13. imports: ['vue', 'vue-i18n', 'pinia'],
  14. resolvers: [ElementPlusResolver()],
  15. dts: 'src/auto-imports.d.ts'
  16. }),
  17. Components({
  18. resolvers: [ElementPlusResolver()],
  19. dts: 'src/components.d.ts'
  20. }),
  21. electron([
  22. {
  23. entry: 'electron/main.ts',
  24. onstart(options) {
  25. options.startup()
  26. },
  27. vite: {
  28. build: {
  29. outDir: 'dist-electron',
  30. rollupOptions: {
  31. external: ['electron', 'sudo-prompt', 'execa']
  32. }
  33. }
  34. }
  35. },
  36. {
  37. entry: 'electron/preload.ts',
  38. onstart(options) {
  39. options.reload()
  40. },
  41. vite: {
  42. build: {
  43. outDir: 'dist-electron'
  44. }
  45. }
  46. }
  47. ]),
  48. renderer()
  49. ],
  50. resolve: {
  51. alias: {
  52. '@': resolve(__dirname, 'src'),
  53. '@electron': resolve(__dirname, 'electron'),
  54. '@shared': resolve(__dirname, 'shared')
  55. }
  56. },
  57. css: {
  58. preprocessorOptions: {
  59. scss: {
  60. api: 'modern-compiler',
  61. additionalData: `@use "@/styles/variables.scss" as *;`
  62. }
  63. }
  64. },
  65. build: {
  66. outDir: 'dist',
  67. emptyOutDir: true
  68. }
  69. })