backsplash-app
Version:
An AI powered wallpaper app.
85 lines (76 loc) • 2.46 kB
text/typescript
import { ConfigEnv, defineConfig } from "vite";
import path from "path";
import { checker } from "vite-plugin-checker";
import svgrPlugin from "vite-plugin-svgr";
import viteTsconfigPaths from "vite-tsconfig-paths";
import { sentryVitePlugin } from "@sentry/vite-plugin";
import { config } from "dotenv";
import { productName, version } from "../package.json";
import { pluginExposeRenderer } from "./vite.base.config";
// Load environment variables
config({ path: ".env.production" });
// https://vitejs.dev/config
export default defineConfig((env) => {
const forgeEnv = env as ConfigEnv<"renderer">;
const { root, mode, forgeConfigSelf } = forgeEnv;
const name = forgeConfigSelf?.name ?? "main_window";
return {
root,
mode,
build: {
outDir: `.vite/renderer/${name}`,
sourcemap: true,
rollupOptions: {
output: {
manualChunks: {
react: ["react", "react-dom"],
recoil: ["recoil", "recoil-sync"],
ui: ["react-icons", "react-hot-toast", "react-tabs", "react-joyride"],
},
},
},
},
resolve: {
preserveSymlinks: true,
alias: {
"@": path.resolve(__dirname, "../src"),
},
},
clearScreen: false,
plugins: [
pluginExposeRenderer(name),
svgrPlugin(),
viteTsconfigPaths(),
checker({
typescript: true,
eslint: {
lintCommand: 'eslint "./**/*.{ts,tsx}"',
},
}),
// Put the Sentry vite plugin after all other plugins
mode === "production" && process.env.SENTRY_AUTH_TOKEN && sentryVitePlugin({
authToken: process.env.SENTRY_AUTH_TOKEN,
org: "james-julius-darby-development",
project: "backsplash",
// Set release name based on app version
release: {
name: version,
},
// Debug and output settings
debug: false,
silent: true,
// Disable telemetry
telemetry: false,
}),
].filter(Boolean), // Remove falsy values from plugins array
define: {
__DARWIN__: process.platform === "darwin",
__WIN32__: process.platform === "win32",
__LINUX__: process.platform === "linux",
__APP_NAME__: JSON.stringify(productName),
__APP_VERSION__: JSON.stringify(version),
__DEV__: process.env.NODE_ENV === "development",
__SENTRY_DSN__: JSON.stringify(process.env.SENTRY_DSN || ""),
},
};
});