React 교육 수강 중에 만든 간단한 React App을 배포해보고자 한다.
사실 나중을 생각하면 GitHub Pages에 배포하는 것이 아니라 실제 어플리케이션 서버에 배포하는 것을 작성해야 하나, 과정 중에 배울 만한 점들이 있어 별도로 기록해 둔다.
gh-pages 패키지 설치
GitHub 계정은 이미 생성하여 보유하고 있다고 가정한다.
프로젝트 폴더 내에서 아래와 같이 npm install 명령어를 통해 GitHub Pages에 배포하는 것을 도와줄 gh-pages 패키지를 설치한다.
npm install gh-pages
package.json 수정
package.json 파일에 두가지 정도를 수정해야 한다.
하나는 deploy와 관련된 script를 추가하는 것이고, 다른 하나는 해당 App이 배포될 Homepage를 명시해주는 것이다.
1. Script 수정
파일 내 scripts 부분에 아래와 같이 predeploy와 deploy를 추가한다.
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"eject": "react-scripts eject",
"predeploy": "npm run build",
"deploy": "gh-pages -d build"
},
이렇게 하면, 배포를 위해 npm run deploy 명령어 수행 시 Node.js에서 자동으로 predeploy 명령어를 실행 후 deploy를 수행하게 된다.
- 'npm run deploy' 입력 -> predeploy가 있으므로 predeploy 명령어인 'npm run build' 수행
- npm run build 명령어인 'react-scripts build'를 통해 build 폴더에 배포 파일 생성
- 실제 npm run deploy 명령어인 'gh-pages -d build' 명령어를 통해 GitHub Pages에 build 폴더의 파일 배포
GitHub Pages 사용 설정
우선 GitHub의 호스팅 기능을 사용하기 위해서는 해당 Repository가 Public으로 공개되어 있어야 한다.
만약 공개되어 있지 않다면 Settings > General의 맨 하단에서 공개 여부를 설정할 수 있으므로 참고하자.
내가 배포하고자 하는 Repo.의 Settings > Pages 메뉴로 들어가면 아래와 같은 메뉴를 볼 수 있다.
첫번째 빨간 네모는 해당 Repository의 GitHub Pages 주소를 나타내며, 두번째 빨간 네모는 그래서 내 App Source가 어디 있냐? 나는 Deploy from a branch를 선택했으므로 그러면 어느 브랜치에 있냐? 를 묻는 부분이 되겠다.
gh-pages 패키지를 사용하면 자동으로 gh-pages 브랜치를 생성하고 해당 브랜치에 파일을 배포하므로 gh-pages & root를 선택해 주면 되겠다.
배포 실행
Visual Studio 등 작업하던 툴의 Terminal에서 이 전 단계에서 사전 셋팅한 npm run deploy 명령어를 실행한다.
그러면 자동으로 배포용 파일을 생성하고, 내 레파지토리의 gh-pages 브랜치에 파일들을 배포해 주게 된다.
약 10분 정도의 대기시간이 필요했던 것 같다.
조금의 대기 후에 아까 보았던 Pages 화면의 빨간색 네모 표시해 두었던 github.io 주소로 들어가 보면 페이지가 정상적으로 표시되는 것을 볼 수 있다.
추가) Firebase Authentication 도메인 승인
해당 앱은 Firebase 기반으로 만들었으므로 Firebase Authentication 기능을 이용해 가입 및 로그인을 진행하는데, 배포한 깃헙 도메인이 승인되어 있지 않아 처음에는 로그인이 되지 않는 현상이 발생한다.
Firebase > Authentication > Settings > 도메인 > 승인된 도메인 메뉴에서 '도메인 추가' 버튼을 클릭하여 계정명.github.io 도메인을 추가해 주자.
이상으로 간단하게 GitHub Pages를 활용하여 배포하는 과정을 알아보았다.
끝.
'혼자 다 해볼거야 > 생산성' 카테고리의 다른 글
[형상관리] GitHub Public Repository 사용 시 Key 업로드 방지 (0) | 2023.02.04 |
---|---|
[형상관리] VSCode - GitHub Repository 연동 2 (0) | 2023.01.28 |
[형상관리] VSCode - Git - GitHub 연동 (0) | 2023.01.21 |