Files
crowd-funder-from-jason/vite.config.mjs
2025-02-12 06:46:16 +00:00

63 lines
1.4 KiB
JavaScript

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,
},
};
});