mirror of
https://github.com/orangecoding/fredy.git
synced 2026-06-16 12:31:07 +00:00
With base '' the built index.html references assets relatively (./assets/*). On deep links like /listings/listing/:id the browser resolves those below the route path, the SPA fallback answers with index.html and the page dies trying to execute HTML as a JS module. Notification emails link directly to listing details, so every 'Open in fredy' link landed on a white screen.
44 lines
1.0 KiB
JavaScript
44 lines
1.0 KiB
JavaScript
/*
|
|
* Copyright (c) 2026 by Christian Kellner.
|
|
* Licensed under Apache-2.0 with Commons Clause and Attribution/Naming Clause
|
|
*/
|
|
|
|
import react from '@vitejs/plugin-react';
|
|
import { defineConfig } from 'vite';
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig({
|
|
// Must be absolute: with a relative base, asset URLs in index.html break on
|
|
// deep links like /listings/listing/:id (the SPA fallback serves index.html,
|
|
// but ./assets/* then resolves below the route path and loads HTML as JS).
|
|
base: '/',
|
|
build: {
|
|
chunkSizeWarningLimit: 9999999,
|
|
outDir: './ui/public',
|
|
emptyOutDir: true,
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id) {
|
|
if (id.includes('node_modules/maplibre-gl')) {
|
|
return 'maplibre-gl';
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
optimizeDeps: {
|
|
include: ['maplibre-gl'],
|
|
},
|
|
plugins: [react()],
|
|
server: {
|
|
proxy: {
|
|
'/api': {
|
|
target: {
|
|
host: '0.0.0.0',
|
|
protocol: 'http:',
|
|
port: 9998,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|