Simple Memo
Nextjs를 이용한 Github pages 블로그 만들기
2023-03-11Github pages와 Nextjs를 선택한 이유
1. Github pages
vercel도 Nextjs로 쉽게 배포할 수 있지만, 백엔드는 별도로 만들지 않을 계획이었기에, 추후 댓글 기능이나 추천 글 목록 등을 Github 사이트 하나로 모두 관리하기 위해서 Github pages를 이용하기로 했다.
2. Nextjs
블로그는 검색엔진에 잘 노출되어야 그 의미가 있다. 또한 React 환경을 이용한 블로그 개발을 원했기에 SSR(Server Side Rendering) 등을 통한 SEO(검색엔진 최적화)에 유리한 React 프레임워크인 Nextjs를 사용하기로 결정했다.
Github Pages 호스팅 방법
1. Repository 생성
![]()
Repo 이름은 {username}.github.io 로 저장해준다.
- 생성된 repo의 settings => pages에서 배포를 확인할 수 있다. (배포되는데 5~10분 정도 소요될 수 있다.)
2. Repository 클론 후 Nextjs 설치
# 현재 디렉토리에 설치 yarn create next-app . # typescript yarn create next-app . --typescript
3. gh-pages 설치
Github pages를 이용하기 위해 아래 명령어를 통해 설치해준다.
yarn add gh-pages --save-dev
4. package.json 설정
홈페이지 도메인 추가 및 scripts를 수정해준다.
![]()
1번째 줄처럼 홈페이지를 입력하고, scripts를 위와 같이 수정해준다.
"build": "next build && next export", "predeploy": "npm run build", "deploy": "touch out/.nojekyll && gh-pages -d out --dotfiles"
- next export : Nextjs를 정적 사이트로 배포하기 위해 설정
- -- touch out/.nojekyll : 본래 guthub pages는 jekyll 기반으로, __{filename}을 특수 리소스로 간주하고 최종 사이트에 복사하지 않기 때문에 jekyll을 사용하지 않는다고 명시해 정상적으로 처리될 수 있도록 설정
- gh-pages -d out --dotfiles : 현재 repo의 임시 복제본 생성 후, gh-pages 브랜치가 없는 경우 브랜치 생성. 기본 경로의 모든 파일 또는 선택적 src 구성의 패턴과 일치하는 파일만 복사하고 모든 변경 사항 커밋 후 푸시. 이미 gh-pages 브랜치가 있는 경우 제공된 파일에서 커밋을 추가하기 전에 원격의 모든 커밋으로 업데이트됨. src 패턴과 일치하는 도트 파일도 포함시킴
참조 : https://github.com/tschaub/gh-pages
명령어 보기
yarn gh-pages --help
![]()
next.config.js 수정
config는 본인이 적용하려는 방식에 맞게 설정해줘도 괜찮다.
/** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: false, images: { unoptimized: true, // 이미지 정상적으로 불러올 수 있도록함 }, compiler: { styledComponents: true, // styled-components 사용 시 컴파일러에 추가 }, }; module.exports = nextConfig;
6. 배포
yarn deploy
cmd(명령 프롬프트)에서 실행 시 tought를 사용할 수 없다는 에러가 발생하기 때문에 git bash로 실행
7. 배포 후 설정
Export successful. Files written to D:\0. CORDING\INDI-PROJECT\github-blog\out $ gh-pages -d out --dotfiles Published
터미널에 위와 같은 메세지가 뜨면, repository => setting => pages의 branch에 gh-pages가 생성돼있는 것을 볼 수 있음
gh-pages를 배포 브랜치로 설정해준 후 저장
![]()
설정을 완료하고 상단의 Visit site로 페이지를 접속하면 Nextjs 기본 화면이 잘 나오는 것을 볼 수 있다.
Simple Memo 카테고리의 다른 글
COMMENTS