Files
ln-bi/vite.config.ts
T
shishengliang 358e2ecf4f
ci/woodpecker/push/woodpecker Pipeline was successful
Merge inventory permission and preview fixes into main
2026-09-28 13:16:53 +08:00

40 lines
1.4 KiB
TypeScript

import { fileURLToPath, URL } from 'node:url';
import { defineConfig, loadEnv } from 'vite';
import react from '@vitejs/plugin-react';
import tailwindcss from '@tailwindcss/vite';
import { energyDevMockApi } from './src/modules/energy/hydrogen/dev-mock-api';
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), '');
return {
resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } },
plugins: [
react(),
tailwindcss(),
...(env.DEV_MOCK_API === '1' ? [energyDevMockApi()] : []),
],
server: {
// Preview requests append audit logs; watching them creates a reload/request loop.
watch: { ignored: ['**/logs/**'] },
allowedHosts: ['biz.u2145933.nyat.app'],
proxy: {
'/api': {
target: 'http://localhost:3001',
changeOrigin: true,
configure(proxy) {
// A failed upstream BI aggregation must become an HTTP error for
// the UI fallback, never terminate the 8115 preview process.
proxy.on('error', (_error, _request, response) => {
if (response && 'writeHead' in response && !response.headersSent) {
response.writeHead(502, { 'Content-Type': 'text/plain; charset=utf-8' });
response.end('Upstream API temporarily unavailable');
}
});
},
},
},
},
};
});