Files
ln-bi/vite.config.ts
T
2026-09-23 14:28:26 +08:00

38 lines
1.3 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: {
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');
}
});
},
},
},
},
};
});