Next.js 앱을 GitHub Pages 로 배포하기
목차
계기
기존에 블로그를 GitHub Pages 로 운영하고 있었다.
Jekyll 로 만들어진 블로그였는데, Ruby 보다는 더 친숙한 JavaScript 로 블로그를 만들고 싶었다.
그러던 중 Next.js 를 알게 되어 블로그를 Next.js 로 만들어보기로 했다.
기존 작성된 글 저장소 분리하기
먼저 기존 블로그 저장소에서 작성한 포스트를 따로 저장소를 만들어 분리해두었다.
이에 대한 글은 이전 글에서 작성해 두었으니 생략하겠다.
Next.js 블로그 만들기
먼저 Next.js 프로젝트를 생성한다.
빌드된 정적 파일 만들기
GitHub Pages 에서 Next.js 로 만든 블로그를 배포하기 위해서는 빌드된 정적 파일을 배포해야 한다.
이를 만들기 위해서는 next.config.mjs
파일을 열어 output
설정을 "export"
로 설정한다.
배포 자동화하기
배포 자동화를 위해 GitHub Actions 를 사용하자.
먼저 GitHub 저장소의 Settings 탭 > Code and automation / Pages > Build and deployment / Source 에서 GitHub Actions 를 선택한다.
이를 선택하면 바로 밑에 "Use a suggested workflow, browse all workflows, or create your own." 라는 안내문구가 추가되는데, 여기서 "browse all workflows" 를 선택한다.
"Search workflows" 에 "Next.js" 를 입력하면 검색되는 "Next.js" 라는 이름의 workflow 템플릿의 "Configure" 버튼을 누른다.
그러면 < 저장소 이름 >/.github/workflows/nextjs.yml
파일을 생성하기 위한 페이지가 나와 있고 템플릿을 기반으로 작성되어 있다.
독자가 이 글을 읽는 시점에는 해당 문제가 해결되었을 수도 있지만, 이 글이 작성되는 시기에는 이 템플릿을 그대로 사용하면 문제가 발생하므로 수정이 필요하다.
먼저 next export
명령을 삭제한다.
그리고 본인이 사용하는 config 파일이 next.config.js
가 아니라면 config 파일을 명시해줘야 한다.
해당 문제에 대해서는 이전 글 에서 다루었으니 참고하자.
이후 우측 상단의 "Commit changes..." 버튼을 누르고 커밋 메세지를 작성해 커밋을 생성한다.
배포 확인
커밋을 완료하면 GitHub Actions 가 자동으로 빌드를 시작한다.
저장소에 들어가 Actions 탭에 들어가면 빌드와 배포가 진행되는 과정을 확인할 수 있다.
좌측 메뉴의 Management / Deployments 에 들어가면 배포 내역이 나와있는데, 만약 배포가 무사히 완료됐다면 커밋 시각 우측에 배포된 페이지 링크 아이콘이 있을 것이다.
해당 아이콘을 클릭해 배포된 페이지로 이동해서 우리의 결과물을 직접 확인해보자!