인프런 커뮤니티 질문&답변

Gyeongdeok PARK님의 프로필 이미지
Gyeongdeok PARK

작성한 질문수

Next + React Query로 SNS 서비스 만들기

build 에러 Error occurred prerendering page

작성

·

1.3K

·

수정됨

0

Error occurred prerendering page "/newpost". Read more: https://nextjs.org/docs/messages/prerender-error

ReferenceError: document is not defined

at 46593 (/Users/gyeongdeokpark/Documents/01.GitHub/codeblog/.next/server/app/newpost/page.js:2:59980)

at __webpack_require__ (/Users/gyeongdeokpark/Documents/01.GitHub/codeblog/.next/server/webpack-runtime.js:1:146)

at F (/Users/gyeongdeokpark/Documents/01.GitHub/codeblog/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:36:6049)

at /Users/gyeongdeokpark/Documents/01.GitHub/codeblog/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:36:8464

at W._fromJSON (/Users/gyeongdeokpark/Documents/01.GitHub/codeblog/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:36:8902)

at JSON.parse (<anonymous>)

at L (/Users/gyeongdeokpark/Documents/01.GitHub/codeblog/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:36:5770)

at t (/Users/gyeongdeokpark/Documents/01.GitHub/codeblog/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:36:12155)

✓ Generating static pages (5/5)

> Export encountered errors on following paths:

/newpost/page: /newpost

 

 


스크린샷 2024-01-25 오전 1.30.17.png

npm run build시에 발생하는 에러입니다.

 

각종 사이트에서는 14버전에서 에러가 발생하고 있다고 하는 글 들만 있고 해결방법을 찾지 못했습니다..

gpt에서는 클라이언트 사이드에서 실행되어야 하는 코드가 서버 사이드에서 실행되서 그렇다고 하는데

잘해결이 안되고 있습니다. npm run dev시에는 에러없이 잘 실행됩니다.

"use client";

import React, { ChangeEventHandler, useState } from "react";
import LexicalEditor from "@/app/newpost/LexicalEditor";

function Page({ props }: any) {
  const [title, setTitle] = useState("");
  const [content, setContent] = useState("");
  const onChangeTitle: ChangeEventHandler<HTMLInputElement> = (e) => {
    setTitle(e.target.value);
  };

  const onSubmit = (e: any) => {
    e.preventDefault();
    console.log("제목 : ", title);
    console.log("내용 : ", content);
  };

  return (
    <form className="postForm" onSubmit={onSubmit}>
      <div className="postForm__titleInputSection">
        <input
          className="postForm__titleInput"
          type="text"
          name="title"
          value={title}
          onChange={onChangeTitle}
          placeholder={"제목을 입력하세요."}
        />
      </div>
      <div className="postForm__editorWrapper">
        <LexicalEditor />
      </div>
      <button>작성하기</button>
    </form>
  );
}

export default Page;

 깃허브 링크 입니다.

https://github.com/littleduck1219/codeblog/blob/main/src/app/newpost/page.tsx 

 

답변 2

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

일단 어떤 코드에서 에러나는지를 확인해야 해서 newpost/page.tsx를 엄청 간단하게 만들어보세요.

function Page() {
return <div>페이지</div>
}

export default Page;

이런 식으로요. 여기서 빌드 성공하면 한 줄씩 넣어보면서 언제부터 에러가 나는지 보면 됩니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

at 46593 (/Users/gyeongdeokpark/Documents/01.GitHub/codeblog/.next/server/app/newpost/page.js:2:59980)

여기가 가리키는 코드가 뭔가요?

newpost의 page는 위에 제가 드린 코드가 해당 코드 입니다.

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

그 코드랑 다른 코드입니다. .next/server/app 폴더에 들어있는 빌드된 결과물입니다. 에러가 나는 정확한 저 위치를 알아야 해요

찾아보니 숨김폴더로 있긴합니다.. 두개의 파일이 있는데

https://cherry-pantydraco-d54.notion.site/next-server-app-58ba9c2de2a24d73b452e66b696b3c3c?pvs=4

너무길어서 일단 노션으로 링크 만들어서 공유드립니다!

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

저한테 파일 내용 전체를 보여달라고 말씀드리는 게 아닙니다. 그냥 저 경로를 눌렀을 때 바로 뜨는 코드가 에러의 위치입니다. 저걸로 힌트를 얻는거고요.

넵 알겠습니다 한번 찾아보겠습니다.

Gyeongdeok PARK님의 프로필 이미지
Gyeongdeok PARK

작성한 질문수

질문하기