주요 변경사항: • 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>
74 lines
2.1 KiB
TypeScript
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",
|
|
},
|
|
}));
|