123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import { resolve } from 'path'
- import { defineConfig } from 'electron-vite'
- import vue from '@vitejs/plugin-vue'
- import AutoImport from 'unplugin-auto-import/vite'
- import Components from 'unplugin-vue-components/vite'
- import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
- import tailwindcss from '@tailwindcss/vite'
- import IconsResolver from 'unplugin-icons/resolver'
- export default defineConfig({
- main: {
- build: {
- rollupOptions: {
- input: {
- index: resolve(__dirname, 'electron/main/index.ts')
- }
- }
- }
- },
- preload: {
- build: {
- rollupOptions: {
- input: {
- index: resolve(__dirname, 'electron/preload/index.ts')
- }
- }
- }
- },
- renderer: {
- server: {
- cors: true
- },
- root: '.',
- build: {
- rollupOptions: {
- input: {
- index: resolve(__dirname, 'index.html')
- }
- }
- },
- resolve: {
- alias: {
- '@': resolve('src')
- }
- },
- plugins: [
- vue(),
- tailwindcss(),
- AutoImport({
- resolvers: [
- // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)
- ElementPlusResolver(),
- // 自动导入图标组件
- IconsResolver({})
- ],
- imports: ['vue', 'vue-router', '@vueuse/core'],
- dts: 'src/types/auto-imports.d.ts' // 自动生成 auto-imports.d.ts
- }),
- Components({
- resolvers: [
- ElementPlusResolver(),
- IconsResolver({
- // 图标库,其他图标库 https://icon-sets.iconify.design/
- enabledCollections: ['ep']
- })
- ],
- dirs: ['src/components', 'src/**/components', 'src/**/components/**/*.vue'],
- dts: 'src/types/auto-components.d.ts' // 自动生成 components.d.ts
- })
- ],
- optimizeDeps: {
- include: [
- 'vue',
- 'vue-router',
- 'axios',
- '@vueuse/core',
- 'nprogress',
- 'element-plus/es/components/tooltip/style/css',
- 'element-plus/es/components/tabs/style/css',
- 'element-plus/es/components/tab-pane/style/css',
- 'element-plus/es/components/select/style/css',
- 'element-plus/es/components/option/style/css',
- 'element-plus/es/components/input/style/css',
- 'element-plus/es/components/row/style/css',
- 'element-plus/es/components/slider/style/css',
- 'element-plus/es/components/col/style/css',
- 'element-plus/es/components/switch/style/css',
- 'element-plus/es/components/checkbox/style/css',
- '@vue/reactivity',
- 'element-plus/es/components/config-provider/style/css',
- 'element-plus/es/locale/lang/zh-cn',
- '@element-plus/icons-vue',
- 'element-plus/es/components/container/style/css',
- 'element-plus/es/components/footer/style/css',
- 'element-plus/es/components/main/style/css',
- 'element-plus/es/components/header/style/css',
- 'element-plus/es/components/button/style/css',
- 'element-plus/es/components/pagination/style/css',
- 'element-plus/es/components/table/style/css',
- 'element-plus/es/components/table-column/style/css',
- 'element-plus/es/components/form/style/css',
- 'element-plus/es/components/form-item/style/css'
- ]
- }
- }
- })
|