import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' import frappeui from 'frappe-ui/vite' import { VitePWA } from 'vite-plugin-pwa' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ frappeui(), vue({ script: { propsDestructure: true, }, }), VitePWA({ registerType: 'autoUpdate', devOptions: { enabled: true, }, manifest: { display: 'standalone', name: 'Frappe CRM', short_name: 'Frappe CRM', description: 'Modern & 100% Open-source CRM tool to supercharge your sales operations', icons: [ { src: '/assets/crm/manifest/manifest-icon-192.maskable.png', sizes: '192x192', type: 'image/png', purpose: 'any', }, { src: '/assets/crm/manifest/manifest-icon-192.maskable.png', sizes: '192x192', type: 'image/png', purpose: 'maskable', }, { src: '/assets/crm/manifest/manifest-icon-512.maskable.png', sizes: '512x512', type: 'image/png', purpose: 'any', }, { src: '/assets/crm/manifest/manifest-icon-512.maskable.png', sizes: '512x512', type: 'image/png', purpose: 'maskable', }, ], }, }), ], resolve: { alias: { '@': path.resolve(__dirname, 'src'), }, }, build: { outDir: '../crm/public/frontend', emptyOutDir: true, commonjsOptions: { include: [/tailwind.config.js/, /node_modules/], }, sourcemap: true, }, optimizeDeps: { include: [ 'feather-icons', 'showdown', 'tailwind.config.js', 'engine.io-client', 'prosemirror-state', ], }, })