import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import path from 'path' import fs from 'fs' export default defineConfig({ plugins: [ react(), { name: 'legacy-earth', configureServer(server) { server.middlewares.use('/legacy/earth', (req, res, next) => { let url = req.url || '/' if (url === '' || url === '/') { url = '/3dearthmult.html' } const filePath = path.resolve(__dirname, 'legacy/3dearthmult' + url) if (fs.existsSync(filePath) && fs.statSync(filePath).isFile()) { const ext = path.extname(filePath).toLowerCase() const contentTypes = { '.html': 'text/html', '.json': 'application/json', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.png': 'image/png', '.js': 'application/javascript', '.css': 'text/css' } res.setHeader('Content-Type', contentTypes[ext] || 'text/plain') fs.createReadStream(filePath).pipe(res) } else { next() } }) } } ], server: { port: 3000, proxy: { '/api': { target: 'http://localhost:8000', changeOrigin: true, secure: false, }, '/ws': { target: 'ws://localhost:8000', ws: true, changeOrigin: true, secure: false, }, }, fs: { allow: ['..'], }, }, publicDir: 'public', resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, optimizeDeps: { exclude: ['satellite.js'], }, })