Spaces:
Running
Running
| import { resolve } from "node:path"; | |
| import react from "@vitejs/plugin-react"; | |
| import tailwindcss from "@tailwindcss/vite"; | |
| import { defineConfig, type Plugin } from "vite"; | |
| const appRoutes = new Set([ | |
| "", | |
| "devices", | |
| "accelerators", | |
| "systems", | |
| "models", | |
| "compare", | |
| "bounds", | |
| ]); | |
| function appHtmlFallback(): Plugin { | |
| return { | |
| name: "local-frontier-app-html-fallback", | |
| configureServer(server) { | |
| server.middlewares.use((request, _response, next) => { | |
| if (request.method !== "GET" && request.method !== "HEAD") { | |
| next(); | |
| return; | |
| } | |
| const url = new URL(request.url ?? "/", "http://local-frontier.dev"); | |
| const route = | |
| decodeURIComponent(url.pathname).replace(/^\/+/, "").split("/")[0] ?? | |
| ""; | |
| if (appRoutes.has(route)) { | |
| request.url = `/app.html${url.search}`; | |
| } | |
| next(); | |
| }); | |
| }, | |
| }; | |
| } | |
| export default defineConfig({ | |
| plugins: [appHtmlFallback(), react(), tailwindcss()], | |
| resolve: { | |
| alias: { | |
| "@": resolve(import.meta.dirname, "src"), | |
| }, | |
| }, | |
| build: { | |
| rollupOptions: { | |
| input: resolve(import.meta.dirname, "app.html"), | |
| }, | |
| }, | |
| }); | |