58 lines
1.2 KiB
JavaScript
58 lines
1.2 KiB
JavaScript
/**
|
|
* Vite Configuration
|
|
*
|
|
* Configures:
|
|
* - Cross-origin isolation headers (required for OPFS/SQLite)
|
|
* - Worker bundling
|
|
*/
|
|
|
|
import { defineConfig } from 'vite';
|
|
|
|
export default defineConfig({
|
|
// Development server configuration
|
|
server: {
|
|
headers: {
|
|
// Required for OPFS (Origin Private File System) access
|
|
'Cross-Origin-Opener-Policy': 'same-origin',
|
|
'Cross-Origin-Embedder-Policy': 'require-corp',
|
|
},
|
|
},
|
|
|
|
// Preview server (npm run preview) configuration
|
|
preview: {
|
|
headers: {
|
|
'Cross-Origin-Opener-Policy': 'same-origin',
|
|
'Cross-Origin-Embedder-Policy': 'require-corp',
|
|
},
|
|
},
|
|
|
|
// Build configuration
|
|
build: {
|
|
// Generate source maps for debugging
|
|
sourcemap: true,
|
|
|
|
// Target modern browsers that support OPFS
|
|
target: 'esnext',
|
|
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id) {
|
|
if (id.includes('node_modules/ol/')) return 'openlayers';
|
|
if (id.includes('node_modules/ol-ext/')) return 'ol-ext';
|
|
if (id.includes('node_modules/bootstrap/')) return 'bootstrap';
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
// Worker configuration
|
|
worker: {
|
|
format: 'es',
|
|
},
|
|
|
|
// Dependency optimization
|
|
optimizeDeps: {
|
|
exclude: ['sqlocal'],
|
|
},
|
|
});
|