DI2 внедрение, таск 2: клиентский субапп Data-Insight2 (client-di2)

- client-di2/: копия фронтенда DI2 + shared/schema.ts, main.tsx обёрнут в wouter Router base=/di2, favicon относительный
- client-di2/tailwind.config.ts (свои токены DI2) подключён через @config в index.css — иначе postcss взял бы корневой конфиг iistwin
- vite.config.di2.ts: base /di2/, root client-di2, outDir dist/public-di2
- package.json: build/check через && включают сборку и typecheck di2 (build:di2, check:di2), новых зависимостей нет
- Навигация финансов: ссылка «Data-Insight (полная версия)» → /di2 (target=_blank) в FinanceSidebar и FinanceBottomNav
- Типовые фиксы предсуществующих ошибок DI2 (casts, ruleLogic в mutation-типах, Set<string>)
This commit is contained in:
2026-09-06 19:46:28 +03:00
parent 254950f151
commit 23ed1ecf3d
87 changed files with 23728 additions and 3 deletions

22
vite.config.di2.ts Normal file
View File

@@ -0,0 +1,22 @@
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import path from "path";
// Сборка субаппа Data-Insight2 (client-di2) как отдельного SPA под base "/di2/".
// Вывод — dist/public-di2, который сервер отдаёт на маршруте /di2 (server/index.ts).
export default defineConfig({
base: "/di2/",
root: path.resolve(import.meta.dirname, "client-di2"),
plugins: [react()],
resolve: {
alias: {
"@": path.resolve(import.meta.dirname, "client-di2", "src"),
"@shared": path.resolve(import.meta.dirname, "client-di2", "shared"),
},
},
build: {
outDir: path.resolve(import.meta.dirname, "dist/public-di2"),
emptyOutDir: true,
},
});