space-game/vite.config.ts
Michael Mainguy c0b9f772ee Refactor main.ts: extract handlers and remove dead code
- Extract analytics init to src/analytics/initAnalytics.ts
- Extract level selection handler to src/core/handlers/levelSelectedHandler.ts
- Extract replay handler to src/core/handlers/viewReplaysHandler.ts
- Extract app initialization to src/core/appInitializer.ts
- Remove unused DemoScene and demo.ts
- Remove dead code: DEBUG_CONTROLLERS, webGpu, TestLevel handler
- Add BabylonJS shader pre-bundling to fix Vite dev server issues
- Reduce main.ts from 885 lines to 211 lines

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 04:26:48 -06:00

71 lines
2.5 KiB
TypeScript

import {defineConfig} from "vite";
import { svelte } from '@sveltejs/vite-plugin-svelte';
/** @type {import('vite').UserConfig} */
export default defineConfig({
plugins: [svelte()],
test: {},
define: {},
build: {
sourcemap: true,
rollupOptions: {
output: {
manualChunks: {
'babylon-inspector': ['@babylonjs/inspector'],
}
}
}
},
optimizeDeps: {
esbuildOptions: {
define: {
global: 'window',
}
},
// Include BabylonJS modules - force pre-bundle to prevent dynamic import issues
// Shaders must be explicitly included to avoid dynamic import failures through CloudFlare proxy
include: [
'@babylonjs/core',
// Core shaders
'@babylonjs/core/Shaders/default.vertex',
'@babylonjs/core/Shaders/default.fragment',
'@babylonjs/core/Shaders/rgbdDecode.fragment',
'@babylonjs/core/Shaders/procedural.vertex',
// PBR shaders
'@babylonjs/core/Shaders/pbr.vertex',
'@babylonjs/core/Shaders/pbr.fragment',
'@babylonjs/core/Shaders/pbrDebug.fragment',
// Particle shaders
'@babylonjs/core/Shaders/particles.vertex',
'@babylonjs/core/Shaders/particles.fragment',
'@babylonjs/core/Shaders/gpuRenderParticles.vertex',
'@babylonjs/core/Shaders/gpuRenderParticles.fragment',
// Other common shaders
'@babylonjs/core/Shaders/standard.fragment',
'@babylonjs/core/Shaders/postprocess.vertex',
'@babylonjs/core/Shaders/pass.fragment',
'@babylonjs/core/Shaders/shadowMap.vertex',
'@babylonjs/core/Shaders/shadowMap.fragment',
'@babylonjs/core/Shaders/depth.vertex',
'@babylonjs/core/Shaders/depth.fragment',
'@babylonjs/loaders',
'@babylonjs/havok',
'@babylonjs/materials',
'@babylonjs/procedural-textures'
],
// Prevent cache invalidation issues with CloudFlare proxy
force: false,
// Exclude patterns that trigger unnecessary re-optimization
exclude: []
},
server: {
port: 3000,
allowedHosts: true
},
// appType: 'spa' is default - Vite automatically serves index.html for SPA routes
preview: {
port: 3000,
},
base: "/"
})