구현 사항: 1. React + TypeScript 마이그레이션 시작 - package.json: React, Redux Toolkit, TanStack Query, shadcn/ui dependencies 추가 - vite.config.js: React 플러그인 + Phase 5/7 API 프록시 추가 - tsconfig.json, tsconfig.node.json 추가 2. Redux 스토어 설정 - stores/ontologySlice.ts: 온톨로지 상태 관리 - stores/crawlSlice.ts: 크롤링 진행 상태 - stores/uiSlice.ts: UI 상태 3. 리액트 진입점 및 기본 컴포넌트 - src/main.tsx: React 앱 초기화 - src/App.tsx: 라우팅 설정 (대시보드, 온보딩, 소스, 크롤, 검증) - 5개 페이지 컴포넌트 (placeholder) 4. 스타일 및 설정 - tailwind.config.js: Tailwind 설정 - src/styles/globals.css: 글로벌 스타일 - postcss.config.js: PostCSS 설정 - src/i18n.ts: i18next 다국어 설정 - src/lib/queryClient.ts: React Query 설정 5. TypeScript 타입 정의 - src/stores/slices: 각 Redux slice의 TypeScript 타입 프로젝트 구조: crawler_platform/app/web/frontend/ ├── src/ │ ├── main.tsx (React 진입점) │ ├── App.tsx (라우팅) │ ├── pages/ (4개 페이지 컴포넌트) │ ├── stores/ (Redux 스토어 + slices) │ ├── lib/ (유틸리티) │ ├── styles/ (CSS) │ └── i18n.ts (다국어 설정) ├── index.html (업데이트: React root) ├── package.json (의존성 추가) ├── vite.config.js (React 플러그인) ├── tsconfig.json (TypeScript 설정) ├── tailwind.config.js (Tailwind 설정) └── postcss.config.js (PostCSS 설정) 다음 단계: - npm install로 의존성 설치 - Phase 1: 온톨로지 업로더 구현 - Phase 1: 참고 사이트 매니저 구현 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
40 lines
748 B
JavaScript
40 lines
748 B
JavaScript
import { defineConfig } from "vite";
|
|
import react from "@vitejs/plugin-react";
|
|
|
|
const BACKEND = "http://127.0.0.1:8000";
|
|
const PROXY_PREFIXES = [
|
|
"/projects",
|
|
"/ontology",
|
|
"/ontologies",
|
|
"/extractors",
|
|
"/crawl",
|
|
"/crawl-site",
|
|
"/discover",
|
|
"/research",
|
|
"/recommend",
|
|
"/claims",
|
|
"/entities",
|
|
"/health",
|
|
"/api/v1/graph",
|
|
"/api/v1/llm",
|
|
];
|
|
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
root: ".",
|
|
base: "/static/",
|
|
build: {
|
|
outDir: "../static",
|
|
emptyOutDir: true,
|
|
assetsDir: "assets",
|
|
sourcemap: true,
|
|
},
|
|
server: {
|
|
port: 5173,
|
|
strictPort: true,
|
|
proxy: Object.fromEntries(
|
|
PROXY_PREFIXES.map((prefix) => [prefix, { target: BACKEND, changeOrigin: false }]),
|
|
),
|
|
},
|
|
});
|