> board@0.1.0 build
> next build
▲ Next.js 14.1.3
- Environments: .env.local
Creating an optimized production build ...
✓ Compiled successfully
Linting and checking validity of types .. ⨯ ESLint: Failed to load config "next/babel" to extend from. Referenced from: E:\boot_camp\next\board\.eslintrc.json
✓ Linting and checking validity of types
✓ Collecting page data
Generating static pages (11/16) [== ]
ReferenceError: location is not defined
at E:\boot_camp\next\board\.next\server\chunks\621.js:1:27100
at E:\boot_camp\next\board\.next\server\chunks\621.js:1:27874
at t.startTransition (E:\boot_camp\next\board\node_modules\next\dist\compiled\next-server\app-page.runtime.prod.js:12:108548)
at Object.push (E:\boot_camp\next\board\.next\server\chunks\621.js:1:27862)
at d (E:\boot_camp\next\board\.next\server\app\write\page.js:1:3643)
at nM (E:\boot_camp\next\board\node_modules\next\dist\compiled\next-server\app-page.runtime.prod.js:12:47419)
at nL (E:\boot_camp\next\board\node_modules\next\dist\compiled\next-server\app-page.runtime.prod.js:12:64674)
at nI (E:\boot_camp\next\board\node_modules\next\dist\compiled\next-server\app-page.runtime.prod.js:12:46806)
at nM (E:\boot_camp\next\board\node_modules\next\dist\compiled\next-server\app-page.runtime.prod.js:12:47570)
at nM (E:\boot_camp\next\board\node_modules\next\dist\compiled\next-server\app-page.runtime.prod.js:12:61663)
Error occurred prerendering page "/write". Read more: https://nextjs.org/docs/messages/prerender-error
기존 router.push 로직을 useEffect로 감싸주었다.
=> 이렇게 하면 router.push 등의 코드가 서버 측에서 오류를 발생시키지 않고 useEffect는 컴포넌트가 렌더링된 후에 클라이언트 측에서만 실행되므로, 이 타이밍에 클라이언트 측 전용 로직을 안전하게 실행할 수 있다.
감사합니당..BavarianDuck89..💖
// 기존
if (!session) {
router.push("/api/auth/signin");
}
// 변경
useEffect(() => {
if (!session) {
router.push("/api/auth/signin");
}
}, [session, router]);