Lin / frontend /vite.config.js
Zelyanoth's picture
fff
25f22bf
raw
history blame
2.04 kB
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react({
jsx: 'transform',
jsxFactory: 'React.createElement',
jsxFragment: 'React.Fragment',
})],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
server: {
port: 3000,
host: true, // Allow access from external devices on the same network
proxy: {
'/api': {
target: 'http://localhost:5000',
changeOrigin: true,
secure: false,
// Configure proxy to handle WebSocket connections if needed
ws: true,
// Configure proxy to handle CORS headers
configure: (proxy, _options) => {
proxy.on('error', (err, _req, _res) => {
console.log('proxy error', err);
});
proxy.on('proxyReq', (proxyReq, req, _res) => {
console.log('Sending Request to the Target:', req.method, req.url);
});
proxy.on('proxyRes', (proxyRes, req, _res) => {
console.log('Received Response from the Target:', proxyRes.statusCode, req.url);
});
},
},
// Proxy for WebSocket connections (if needed for real-time features)
'/ws': {
target: 'http://localhost:5000',
ws: true,
changeOrigin: true,
secure: false,
},
},
},
build: {
outDir: 'dist',
sourcemap: true,
// Configure build for production
rollupOptions: {
output: {
manualChunks: {
// Create separate chunks for vendor libraries
vendor: ['react', 'react-dom', 'react-router-dom', 'react-redux'],
},
},
},
// Ensure JSX is processed during build
commonjsOptions: {
include: [/node_modules/],
},
},
// Define environment variables that should be exposed to the browser
define: {
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
},
})