|
|
|
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";
|
|
|
|
|
|
|
|
// 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"
|
|
|
|
: isCapacitor
|
|
|
|
? "dist-capacitor"
|
|
|
|
: "dist";
|
|
|
|
|
|
|
|
return {
|
|
|
|
base: isElectron ? "./" : "/",
|
|
|
|
server: {
|
|
|
|
port: process.env.VITE_PORT || 8080,
|
|
|
|
},
|
|
|
|
build: {
|
|
|
|
outDir, // Dynamically set output directory
|
|
|
|
},
|
|
|
|
plugins: [
|
|
|
|
vue(),
|
|
|
|
...(isElectron
|
|
|
|
? [] // Skip PWA for Electron builds
|
|
|
|
: [
|
|
|
|
VitePWA({
|
|
|
|
...appConfig.pwaConfig,
|
|
|
|
}),
|
|
|
|
]),
|
|
|
|
],
|
|
|
|
resolve: {
|
|
|
|
alias: appConfig.aliasConfig,
|
|
|
|
},
|
|
|
|
};
|
|
|
|
});
|