import { defineConfig } from "vite"; import { VitePWA } from "vite-plugin-pwa"; import vue from "@vitejs/plugin-vue"; import dotenv from "dotenv"; import { loadAppConfig } from "./vite.config.utils"; import path from "path"; // Load environment variables from .env file dotenv.config(); // Load application configuration const appConfig = loadAppConfig(); export default defineConfig(({ mode }) => { const isElectron = mode === "electron"; const isCapacitor = mode === "capacitor"; // Set output directory based on build mode const outDir = isElectron ? "dist-electron/www" : isCapacitor ? "dist-capacitor" : "dist"; return { base: isElectron ? "./" : "/", server: { port: process.env.VITE_PORT || 8080, }, build: { outDir, rollupOptions: { ...(isElectron && { input: { index: path.resolve(__dirname, 'index.html') }, output: { dir: outDir, format: 'cjs', entryFileNames: 'assets/[name].[hash].js', chunkFileNames: 'assets/[name].[hash].js', assetFileNames: 'assets/[name].[hash][extname]' } }) } }, plugins: [ vue(), ...(isElectron ? [] : [ VitePWA({ ...appConfig.pwaConfig, disable: isElectron }), ]), ], resolve: { alias: appConfig.aliasConfig, }, }; });