^^...;; 나름 신중히 검토하고 1차배포했다고 생각했는데 빌드과정에서 오류폭탄남
하나씩 해결해보자...
next.js 프레임워크의 경우, pages파일안에 있는 루트대로 페이지를 생성해주는 아주 편한 기능을 가지고 있다. 그에 맞춰서 룰을 잘 지켜주어야 원하는대로 빌드가 가능하다.
하지만 이번 프로젝트에서 sylted-components
를 사용중이기 때문에 별 생각없이 페이지와 같이 styled.ts
파일을 넣어주었다.
빌드 failed 🥲
기존 styles디렉토리 하위에 pages 디렉토리를 생성하고, 이 위치로 styled.ts파일들을 모두 빼주었다.
로그인 페이지에서 next-auth
를 사용하여, 카카오, 구글, 네이버, 페이스북의 간편로그인 기능을 사용했다. 그런데 화면이 나오지않아서, 콘솔창의 네트워크탭을 보았다.
여기에서는 500 error라고만 알려주고 자세히 어떤 에러인지 알수없다.
이럴때에는 vercel 사이트에서 자세히 확인해볼 수 있다.(콘솔창에도 나오긴 하는데 콘솔보다 보기편함)
프로젝트를 배포하고보면 위 사진처럼 Functions 탭에 들어갈 수 있다.
이 탭에 들어간 상태에서 에러를 발생시키면 자세한 로그를 볼 수 있다.
아쉽게 캡쳐를 안해놔서 ㅠㅠ 지금은 없어졌는데,
[next-auth][error][CLIENT_FETCH_ERROR]
https://next-auth.js.org/errors#client_fetch_error invalid json response body at https://EXAMPLE.com/api/auth/session reason: Unexpected token I in JSON at position 0 { error: ...
검색해서 비슷한 예시를 찾았다.
나도 [next-auth][error][CLIENT_FETCH_ERROR]
가 나왔었다.
일단 이 부분은 환경변수 설정이 잘 되어있는지 먼저 확인해주어야 한다.
프로젝트를 작업할 때 .env
파일에 환경변수를 넣고 작업했을텐데,
각자의 프로젝트에서 위 페이지의 상단 Settings/Environment Variables
탭으로 들어가서 환경변수를 추가, 삭제, 수정할 수 있다.
당연히 .env
파일에 있는 환경변수들을 모두 정확히 입력해주어야 한다.
하지만 분명히 확인했는데도 오류가 난다면 ...
중요한 점은, 환경변수에 NEXTAUTH_URL
와 NEXTAUTH_SECRET
를 꼭!!! 넣어주어야 한다.
NEXTAUTH_URL
https://need-compliments-sandy.vercel.app/
NEXTAUTH_SECRET
이 부분 역시 공식문서를 참고했다.
시크릿키를 어떻게 만드냐면 이 부분도 공식문서 참고.
위 문서에서 말하듯이 openssl rand -base64 32
를 터미널에서 실행시키고 나온 값을 NEXTAUTH_SECRET
값으로 사용하면 된다.
(프로젝트가 진행중이므로 배포관련 오류가 나면 또 추가하겠음)
ref