gameflow-deck/vite.config.ts
Simeon Radivoev 4739b89933
feat: Added QR login
fix: Fixed webview for windows builds
2026-03-03 15:51:47 +02:00

93 lines
No EOL
2.4 KiB
TypeScript

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import tailwindcss from '@tailwindcss/vite';
import { tanstackRouter } from '@tanstack/router-plugin/vite';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons-ng';
import path from "node:path";
import staticAssetsPlugin from 'vite-static-assets-plugin';
import os from 'node:os';
import tsconfigPaths from 'vite-tsconfig-paths';
import { host } from "./src/bun/utils/host";
export default defineConfig(() =>
{
const production = process.env.NODE_ENV === 'production';
console.log(`Building Vite in ${process.env.NODE_ENV}`);
process.env.VITE_PLATFORM = os.platform();
process.env.VITE_ARCH = os.arch();
return {
base: './',
plugins: [
staticAssetsPlugin({
directory: 'src/mainview/assets/icons',
outputFile: 'src/mainview/gen/static-icon-assets.gen.ts'
}),
tailwindcss(),
tanstackRouter({
target: 'react',
routesDirectory: "./routes/",
generatedRouteTree: "./gen/routeTree.gen.ts",
autoCodeSplitting: true,
routeFileIgnorePrefix: "-",
quoteStyle: "single"
}),
react({
babel: {
plugins: ['babel-plugin-react-compiler'],
},
}),
createSvgIconsPlugin({
// Specify the icon folder to be cached
iconDirs: [path.resolve(process.cwd(), 'src/mainview/assets/icons')],
}),
tsconfigPaths()
],
root: "src/mainview",
build: {
outDir: "../../dist",
minify: production,
sourcemap: production ? false : 'inline',
rollupOptions: {
input: {
main: 'src/mainview/index.html',
login: 'src/mainview/auth/qr/index.html'
},
output: {
manualChunks: (id
) =>
{
if (id
.includes
('node_modules'))
{
return 'vendor';
}
if (id.endsWith('SvgIcon.tsx'))
{
return 'icons';
}
return null;
},
}
},
emptyOutDir: true,
},
server: {
port: 5173,
strictPort: true,
allowedHosts: true,
host,
},
resolve: {
alias: {
"@emulators": path.resolve(__dirname, `vendors/es-de/emulators.${os.platform()}.${os.arch()}.json`)
}
},
define: {
__HOST__: JSON.stringify(host)
}
};
});