gh-pages 패키지로 React 프로젝트를 GitHub Pages에 배포하는 전체 과정을 단계별로 정리합니다.
코드를 완성했으면 이제 세상에 내보낼 차례입니다. GitHub Pages는 별도 서버 없이 GitHub 저장소만 있으면 무료로 정적 웹사이트를 배포할 수 있는 서비스입니다. gh-pages 패키지 하나면 터미널 명령어 한 줄로 배포까지 끝낼 수 있습니다.
배포 전에 아래 두 가지가 준비되어 있어야 합니다.
Info
아직 원격 저장소를 연결하지 않았다면, GitHub에서 새 레포지토리를 만든 뒤 git remote add origin [레포 주소]로 연결하세요.
터미널에서 아래 명령어로 gh-pages 패키지를 개발 의존성으로 설치합니다.
npm install gh-pages --save-dev설치 후 package.json의 devDependencies에 gh-pages가 추가된 것을 확인하세요.

Vite 프로젝트는 배포 경로를 맞춰주기 위해 base 옵션을 추가해야 합니다.
// vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig({
plugins: [react()],
base: "/저장소이름/",
});주의
base에 입력하는 값은 GitHub 저장소 이름과 정확히 일치해야 합니다. 대소문자도 구분합니다.
package.json에 homepage와 배포 스크립트를 추가합니다.
{
"homepage": "https://깃허브아이디.github.io/저장소이름",
"scripts": {
"predeploy": "npm run build",
"deploy": "gh-pages -d dist"
}
}Tip
predeploy는 deploy 실행 전에 자동으로 먼저 실행됩니다. 빌드 → 배포가 명령어 한 줄로 처리되는 구조입니다.
설정이 완료되면 아래 명령어 하나로 배포합니다.
npm run deploy배포가 성공하면 터미널에 Published가 출력되고, GitHub 저장소에 gh-pages 브랜치가 자동으로 생성됩니다.
GitHub 저장소의 Settings > Pages > Branch에서 gh-pages 브랜치가 선택되어 있는지 확인합니다.

Info
처음 배포 직후에는 사이트가 뜨기까지 1~2분 정도 걸릴 수 있습니다. 준비되면 https://깃허브아이디.github.io/저장소이름 주소로 접속할 수 있습니다.
한 번 세팅해두면 이후에는 npm run deploy 한 줄로 끝납니다. 수정사항이 생기면 코드를 변경하고 다시 실행하면 자동으로 빌드 후 배포됩니다.