Files
auth-portal/apps/web/vite.config.ts
T
Denozordec 15073f53d9 perf(web): разбиение бандла и runtime-оптимизации
- autoCodeSplitting роутов: начальный JS 1012КБ/298гз → 426КБ/131гз (−58%),
  админ-чанки грузятся по требованию
- фильтры грида: убрана искусственная задержка 200мс
- SystemMonitorPopover: поллинг 4 запросов/30с только при открытом поповере
- /me в beforeLoad через ensureQueryData (кэш вместо запроса на каждую навигацию)
- глобальный staleTime 30с (мутации инвалидируют кэш явно)
- режим analyze + rollup-plugin-visualizer (pnpm --filter web analyze)
2026-09-23 14:51:14 +07:00

44 lines
1.4 KiB
TypeScript

import path from 'path'
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import tailwindcss from '@tailwindcss/vite'
import { TanStackRouterVite } from '@tanstack/router-vite-plugin'
import { visualizer } from 'rollup-plugin-visualizer'
export default defineConfig(({ mode }) => ({
plugins: [
TanStackRouterVite({
routesDirectory: './src/routes',
autoCodeSplitting: true,
}),
react(),
tailwindcss(),
// pnpm --filter web analyze → dist/stats.html
...(mode === 'analyze'
? [visualizer({ filename: 'dist/stats.html', gzipSize: true })]
: []),
],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
'@authportal/shared': path.resolve(__dirname, '../../packages/shared/src/index.ts'),
'@authportal/ui/components': path.resolve(__dirname, '../../packages/ui/src/components'),
'@authportal/ui/hooks': path.resolve(__dirname, '../../packages/ui/src/hooks'),
'@authportal/ui/lib': path.resolve(__dirname, '../../packages/ui/src/lib'),
},
},
server: {
port: 5175,
fs: {
allow: [path.resolve(__dirname, '../..')],
},
proxy: {
'/api': 'http://localhost:8080',
'/health': 'http://localhost:8080',
'/ready': 'http://localhost:8080',
'/.well-known': 'http://localhost:8080',
'/oauth': 'http://localhost:8080',
},
},
}))