From 26fbcd0d783c618664769fdcf60f7d49d2ec23eb Mon Sep 17 00:00:00 2001 From: eshmeshek Date: Thu, 18 Dec 2025 13:24:41 +0300 Subject: [PATCH] modified: backend/src/server.ts --- backend/src/server.ts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/backend/src/server.ts b/backend/src/server.ts index ba90c12..d2f2c4a 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -4,7 +4,6 @@ import helmet from 'helmet'; // import rateLimit from 'express-rate-limit'; import swaggerUi from 'swagger-ui-express'; import path from 'path'; -import { createProxyMiddleware } from 'http-proxy-middleware'; import { config } from './config/environment'; import { initializeDatabase } from './config/database'; import { generateDynamicSwagger } from './config/dynamicSwagger'; @@ -117,19 +116,22 @@ if (config.nodeEnv === 'production') { }); } else { // Development mode - proxy to Vite dev server for non-API routes - const viteProxy = createProxyMiddleware({ - target: 'http://localhost:5173', - changeOrigin: true, - ws: true, // Enable WebSocket proxying for HMR - }); + // Dynamic import to avoid requiring http-proxy-middleware in production + import('http-proxy-middleware').then(({ createProxyMiddleware }) => { + const viteProxy = createProxyMiddleware({ + target: 'http://localhost:5173', + changeOrigin: true, + ws: true, // Enable WebSocket proxying for HMR + }); - app.use((req: Request, res: Response, next: any) => { - // If it's an API route or swagger, handle it normally - if (req.path.startsWith('/api/') || req.path.startsWith('/api-docs') || req.path === '/health') { - return next(); - } - // Otherwise, proxy to Vite dev server - return viteProxy(req, res, next); + app.use((req: Request, res: Response, next: any) => { + // If it's an API route or swagger, handle it normally + if (req.path.startsWith('/api/') || req.path.startsWith('/api-docs') || req.path === '/health') { + return next(); + } + // Otherwise, proxy to Vite dev server + return viteProxy(req, res, next); + }); }); // 404 handler for API routes only