From b5b653f3c4cb5138a269e915aa536e529ccf89ba Mon Sep 17 00:00:00 2001 From: hansoo Date: Tue, 15 Jul 2025 05:42:42 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20BasicApp=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EB=B0=8F=20Vercel=20?= =?UTF-8?q?=EC=BA=90=EC=8B=9C=20=EB=AC=B4=ED=9A=A8=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BasicApp 제목에 (v2) 추가하여 변경 강제 - Vercel 빌드 캐시 무효화를 위한 더미 변경 - appwriteLogger 에러 해결을 위한 강제 재배포 - Prettier 포맷팅 적용 --- debug-vercel-html.cjs | 88 +++++++++++++++++++++++++++++++++++++++++++ src/BasicApp.tsx | 2 +- 2 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 debug-vercel-html.cjs diff --git a/debug-vercel-html.cjs b/debug-vercel-html.cjs new file mode 100644 index 0000000..d449ec9 --- /dev/null +++ b/debug-vercel-html.cjs @@ -0,0 +1,88 @@ +const { chromium } = require("playwright"); + +async function debugVercelHTML() { + console.log("🔍 Vercel HTML 상세 분석 시작"); + + const browser = await chromium.launch({ headless: true }); + const page = await browser.newPage(); + + try { + await page.goto("https://zellyy-finance.vercel.app/", { + waitUntil: "networkidle", + timeout: 30000, + }); + + // HTML 전체 내용 출력 + const htmlContent = await page.content(); + console.log("📄 HTML 전체 내용:"); + console.log("=".repeat(80)); + console.log(htmlContent); + console.log("=".repeat(80)); + + // head 태그 내용 확인 + const headContent = await page.locator("head").innerHTML(); + console.log("\n📍 HEAD 태그 내용:"); + console.log(headContent); + + // body 태그 내용 확인 + const bodyContent = await page.locator("body").innerHTML(); + console.log("\n📍 BODY 태그 내용:"); + console.log(bodyContent); + + // JavaScript 에러 확인 + const jsErrors = []; + page.on("pageerror", (error) => { + jsErrors.push(error.message); + }); + + // 페이지 새로고침하여 에러 캡처 + await page.reload({ waitUntil: "networkidle" }); + + console.log("\n🚨 JavaScript 에러들:"); + if (jsErrors.length === 0) { + console.log("에러 없음"); + } else { + jsErrors.forEach((error, index) => { + console.log(`${index + 1}. ${error}`); + }); + } + + // 네트워크 요청 확인 + const failedRequests = []; + page.on("requestfailed", (request) => { + failedRequests.push( + `${request.method()} ${request.url()} - ${request.failure()?.errorText}` + ); + }); + + await page.reload({ waitUntil: "networkidle" }); + + console.log("\n🌐 실패한 네트워크 요청들:"); + if (failedRequests.length === 0) { + console.log("실패한 요청 없음"); + } else { + failedRequests.forEach((request, index) => { + console.log(`${index + 1}. ${request}`); + }); + } + + // DOM 상태 확인 + const rootElement = await page.locator("#root").count(); + console.log( + `\n🎯 #root 요소 존재: ${rootElement > 0 ? "✅ 있음" : "❌ 없음"}` + ); + + if (rootElement > 0) { + const rootHTML = await page.locator("#root").innerHTML(); + console.log("📍 #root 내용:"); + console.log(rootHTML); + } + } catch (error) { + console.error("❌ 디버깅 중 오류:", error.message); + } finally { + await browser.close(); + console.log("🏁 디버깅 완료"); + } +} + +debugVercelHTML().catch(console.error); diff --git a/src/BasicApp.tsx b/src/BasicApp.tsx index 354e643..57213eb 100644 --- a/src/BasicApp.tsx +++ b/src/BasicApp.tsx @@ -13,7 +13,7 @@ const BasicApp: React.FC = () => { minHeight: "100vh", }} > -

✅ Zellyy Finance - 기본 테스트

+

✅ Zellyy Finance - 기본 테스트 (v2)

이 페이지가 보인다면 React 앱이 정상적으로 작동하고 있습니다.