Files
zellyy-finance/vite.config.ts
hansoo 0a8b028a4c refactor: 코드베이스 정리 - Appwrite/Lovable 완전 제거
주요 변경사항:
• Appwrite SDK 및 관련 의존성 완전 제거
• Lovable 관련 도구 및 설정 제거
• 기존 Appwrite 기반 컴포넌트 및 훅 삭제
• Login/Register 페이지를 Clerk 기반으로 완전 전환

제거된 구성요소:
• src/lib/appwrite/ - 전체 디렉토리
• src/contexts/auth/ - 기존 인증 컨텍스트
• 구형 auth 컴포넌트들 (RegisterForm, LoginForm 등)
• useAuthQueries, useTransactionQueries 훅
• Appwrite 기반 테스트 파일들

설정 변경:
• package.json - appwrite, lovable-tagger 의존성 제거
• .env 파일 - Appwrite 환경변수 제거
• vercel.json - Supabase/Clerk 환경변수로 교체
• vite.config.ts - 청크 분할 설정 업데이트

성능 개선:
• 번들 크기 최적화 (Appwrite → Clerk + Supabase)
• 불필요한 코드 및 타입 정의 제거
• 테스트 설정을 Clerk/Supabase 모킹으로 업데이트

Task 11.4 완료: 기존 Appwrite 코드 완전 제거

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 14:13:28 +09:00

74 lines
2.1 KiB
TypeScript

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react-swc";
import path from "path";
import { visualizer } from "rollup-plugin-visualizer";
// https://vitejs.dev/config/
export default defineConfig(({ mode }) => ({
server: {
host: "0.0.0.0",
port: 3000,
cors: true,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
"Access-Control-Allow-Headers": "Content-Type, Authorization",
},
},
plugins: [
react(),
visualizer({
filename: "dist/stats.html",
open: false,
gzipSize: true,
brotliSize: true,
}),
].filter(Boolean),
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
build: {
// Tree shaking 최적화
treeshake: {
moduleSideEffects: false,
propertyReadSideEffects: false,
},
rollupOptions: {
output: {
manualChunks: {
// 벤더 라이브러리들을 별도 청크로 분리
vendor: ["react", "react-dom"],
router: ["react-router-dom"],
ui: [
"@radix-ui/react-dialog",
"@radix-ui/react-dropdown-menu",
"@radix-ui/react-select",
"@radix-ui/react-toast",
"@radix-ui/react-avatar",
"@radix-ui/react-label",
"@radix-ui/react-separator",
"@radix-ui/react-switch",
"@radix-ui/react-tabs",
"@radix-ui/react-alert-dialog",
"@radix-ui/react-progress",
"@radix-ui/react-slot",
],
charts: ["recharts"],
query: ["@tanstack/react-query", "@tanstack/react-query-devtools"],
clerk: ["@clerk/clerk-react"],
supabase: ["@supabase/supabase-js"],
sentry: ["@sentry/react", "@sentry/tracing"],
date: ["date-fns"],
utils: ["clsx", "class-variance-authority", "tailwind-merge"],
},
},
},
// 청크 크기 경고 임계값 조정
chunkSizeWarningLimit: 1000,
// 압축 최적화 (esbuild 사용)
minify: "esbuild",
},
}));