import { defineConfig } from "vite"; import path from "path"; import electron from "vite-plugin-electron/simple"; import react from "@vitejs/plugin-react"; import tailwindcss from "@tailwindcss/vite"; // https://vitejs.dev/config/ export default defineConfig(({ mode }) => { // Check if VITE_APP_MODE is set to 'web' const isWebApp = process.env.VITE_APP_MODE === "web"; return { plugins: [ react(), // Only include the electron plugin if not in 'web' app mode !isWebApp && electron({ main: { // Shortcut of `build.lib.entry`. entry: "electron/main.ts", }, preload: { // Shortcut of `build.rollupOptions.input`. // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`. input: path.join(__dirname, "electron/preload.ts"), }, // Ployfill the Electron and Node.js API for Renderer process. // If you want use Node.js in Renderer process, the `nodeIntegration` needs to be enabled in the Main process. // See 👉 https://github.com/electron-vite/vite-plugin-electron-renderer renderer: process.env.NODE_ENV === "test" ? // https://github.com/electron-vite/vite-plugin-electron-renderer/issues/78#issuecomment-2053600808 undefined : {}, }), tailwindcss(), ].filter(Boolean), // Filter out 'false' values if electron plugin is not included resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, }; });