import react from '@vitejs/plugin-react'; import { defineConfig } from 'vitest/config'; // Конфиг держим минимальным: в Vite 8 (Rolldown) часть старых опций стала молчаливым no-op, // поэтому каждая строка ниже добавлена осознанно и с причиной. export default defineConfig({ plugins: [react()], // Прокси, а не адрес платформы в коде: фронт обязан жить на ТОМ ЖЕ origin. Это факт, а не // настройка — CORS-слоя у платформы нет вовсе, preflight OPTIONS с чужим Origin получает 401 от // гарда сессии (замер приёмки №15 на живом бинаре). Значит браузерный клиент с другого origin // неработоспособен как класс, и в деве единственный рабочий путь — свой origin поверх прокси. // Без TM_PLATFORM прокси не поднимается: по умолчанию сеть держит MSW. server: process.env.TM_PLATFORM ? { proxy: { '/v0': process.env.TM_PLATFORM, '/auth': process.env.TM_PLATFORM } } : undefined, // Тот же флаг виден клиенту: без него мок-воркер перехватил бы запрос ДО прокси, и настройка // выглядела бы сломанной, а не перекрытой. define: { 'import.meta.env.VITE_TM_PLATFORM': JSON.stringify(process.env.TM_PLATFORM ?? ''), }, // Lightning CSS вместо esbuild на минификации — пин STACK_DECISIONS §2. build: { cssMinify: 'lightningcss' }, test: { environment: 'happy-dom', // По умолчанию Vitest отдаёт вместо CSS пустую заглушку — тогда контракт-тест токенов // проверял бы пустоту и всегда был бы зелёным. css: true, include: ['src/**/*.test.{ts,tsx}'], }, });