[ReactJS] React로 영화 서비스 만들기 : 12. Publishing
작성:    
업데이트:
카테고리: ReactJS CloneCoding
태그: ReactJS, ReactJSCloneCoding, SPA
gh-pages
결과물을 github에 올릴 수 있게(deploy) 하는 패키지
설치
$ npm i gh-pages
build 실행
npm run build
원리
package.json > scripts > build
production ready code 생성
production ready
코드 압축, 모든 게 최적화
홈페이지 연동
package.json에 홈페이지와 관련된 내용들을 추가해주어야 한다
// package.json
...
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"homepage": "https://orchemi.github.io/cra-practice"
}
homepage를 key로, github url과 repo 이름을 위와 같이 기입
scripts에 deploy 추가
build를 관장하는 scripts에 deploy 항목을 넣어주자
// package.json
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"deploy": "gh-pages -d build",
"predeploy": "npm run build"
},
- deploy는 gh-pages에게 build라는 디렉토리를 가져가라고 명령하는 것
- deploy는 build가 있고 난 뒤에 실행해야 한다.
- 그런데 deploy 전에 항상 build하는 것을 기억하고 싶지 않다.
- 그래서 predeploy를 만들어 deploy 전에 항상 build할 수 있도록 한다.
실행
무언가 수정 이후 이를 deploy하고 싶을 때에는 아래의 명령어를 입력
$ npm run deploy
내부 진행 순서는 아래와 같다.
- deploy 이전에 predeploy 실행
- 수정 사항을 반영한 전체 코드 build
- build된 내용을 기반으로 repo에 푸시
- github page에 deploy
오류 해결
만약 route 컴포넌트가 나오지 않는다면?
가. basename 추가
컴포넌트 속성값으로 basename={process.env.PUBLIC_URL}을 추가
나. Route에 path 추가
Route path={`${process.env.PUBLIC_URL}/`} element={< Home />}
댓글남기기