import { fileURLToPath } from 'node:url' import { nstartAuth } from '@nstart/auth/vite' import react from '@vitejs/plugin-react' // vitest/config расширяет vite defineConfig — нужно для блока test ниже. import { defineConfig } from 'vitest/config' // Сборочная заглушка @nstart/ui: @nstart/auth реэкспортирует ProfilePage/UserPanel // (с lottie ~6 МБ), которые в сервисе не используются. Алиас отдаёт их импорты в // лёгкий стаб, чтобы их UI не попадал в бандл. Типы tsc берёт из реального пакета. const nstartUiStub = fileURLToPath(new URL('./src/stubs/nstart-ui.tsx', import.meta.url)) export default defineConfig({ // nstartAuth() обслуживает /silent-check-sso.html (нужен части режимов входа); // при loginMode=redirect безвреден. @nstart/ui-плагины и tailwind НЕ подключаем — // их UI в сервисе не используется. plugins: [nstartAuth(), react()], resolve: { dedupe: ['react', 'react-dom'], alias: [{ find: /^@nstart\/ui$/, replacement: nstartUiStub }], }, server: { host: '0.0.0.0', port: 5174, // ТГУ ходит в несколько бэкендов через префиксы. В проде эти маршруты // повторяются в nginx.conf (зеркало) либо на gateway/ingress. proxy: { '/api/pcp-request': { target: 'http://localhost:7005', changeOrigin: true, rewrite: (path: string) => path.replace(/^\/api\/pcp-request/, ''), }, '/api/pcp-ballistics': { target: 'http://localhost:7003', changeOrigin: true, rewrite: (path: string) => path.replace(/^\/api\/pcp-ballistics/, ''), }, '/api/pcp-mission': { target: 'http://localhost:7010', changeOrigin: true, rewrite: (path: string) => path.replace(/^\/api\/pcp-mission/, ''), }, '/api/pcp-tgu': { target: 'http://localhost:7011', changeOrigin: true, rewrite: (path: string) => path.replace(/^\/api\/pcp-tgu/, ''), }, '/api/pcp-complex': { target: 'http://localhost:7002', changeOrigin: true, rewrite: (path: string) => path.replace(/^\/api\/pcp-complex/, ''), }, '/api/stations': { target: 'http://localhost:7009', changeOrigin: true, }, '/api': { target: 'http://localhost:7008', changeOrigin: true, }, }, }, test: { environment: 'jsdom', globals: true, }, })