Files
open-design/vite.config.ts
T
pftom 89d92d8ae0 feat(dev): auto-switch ports on dev:all when defaults are busy
Adds a small launcher (scripts/dev-all.mjs) that probes free ports
for the daemon (OD_PORT, default 7456) and Vite (VITE_PORT, default
5173) before invoking concurrently, so a stray process holding
either port no longer breaks the boot. The resolved ports are
exported into the child env; vite.config.ts now reads VITE_PORT to
keep its dev server and /api proxy aligned with the daemon's actual
port.

Made-with: Cursor
2026-04-28 22:19:42 +08:00

36 lines
1.0 KiB
TypeScript

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
const DAEMON_PORT = Number(process.env.OD_PORT) || 7456;
const VITE_PORT = Number(process.env.VITE_PORT) || 5173;
export default defineConfig({
plugins: [react()],
server: {
port: VITE_PORT,
proxy: {
'/api': {
target: `http://127.0.0.1:${DAEMON_PORT}`,
changeOrigin: true,
// Daemon uses SSE on /api/chat — disable Vite's buffering.
configure: (proxy) => {
proxy.on('proxyRes', (proxyRes) => {
proxyRes.headers['cache-control'] = 'no-cache, no-transform';
});
},
},
// The daemon serves persisted artifacts and the shared device-frame
// library; proxy them through so the dev SPA can iframe them without
// hitting a different origin.
'/artifacts': {
target: `http://127.0.0.1:${DAEMON_PORT}`,
changeOrigin: true,
},
'/frames': {
target: `http://127.0.0.1:${DAEMON_PORT}`,
changeOrigin: true,
},
},
},
});