배포

GitHub pages에 배포(Deploy)

정중식 2019. 11. 28. 20:56

gh-pages..

  • yarn add gh-pages
  • branch를 gh-pages라 부름
  • 어떤 HTML을 push하면 HTML은 index를 갖는데, 이렇게 되면 website는 무료로 제공됨
  • 하지만, Branch를 만드는건 고통임 (merge,push등등..(git의 기능 용어들) 하는게 귀찮음)
  • 그래서 gh-pages가 존재하는거임. 자동으로 돌아감.
  • 주의할점, 깃허브에 올라간 프로젝트여야함
  • Scripts에 다음과 같이 작성
"deploy": "gh-pages -d build",
"predeploy": "yarn run build"
"homepage": "https://wjdwndtlr.github.io/nomflix",
{
  "name": "nomflix",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "axios": "0.18.1",
    "gh-pages": "^2.1.1",
    "prop-types": "^15.7.2",
    "react": "^16.12.0",
    "react-dom": "^16.11.0",
    "react-helmet": "^5.2.1",
    "react-router-dom": "^5.1.2",
    "react-scripts": "3.2.0",
    "styled-components": "^4.4.1",
    "styled-reset": "^4.0.3"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "deploy": "gh-pages -d build", // yarn deploy 하면 predeploy먼저 실행된 다음 실행됨
    "predeploy": "yarn run build" 
  },
  
  "eslintConfig": {
    "extends": "react-app"
  },
  // 리액트를 위해 홈페이지를 구성 wjdwndtlr->깃허브 프로필이름
  "homepage": "https://wjdwndtlr.github.io/nomflix",
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}
  • 깃허브홈페이지가서 해당 프로젝트로 가보면 branch가 두개가 되어있음
    하나는 master 또 하나는 gh-pages.

  • brower router은 gh-pages와 같이 작동하지않음.
    hash router가 필요함( url에 #이 포함되는걸 말함)

  • hash router을 사용안하고싶으면 이와같이 작성하면됨
export default () => (

  <Router>

    <>

      <Header />

      <Switch>

        <Route path="https://wjdwndtlr.github.io//" exact component={Home} />

        <Route path="https://wjdwndtlr.github.io//tv" component={TV} />

        <Route path="https://wjdwndtlr.github.io//search" component={Search} />

        <Route path="https://wjdwndtlr.github.io//movie/:id" component={Detail} />

        <Route path="https://wjdwndtlr.github.io//show/:id" component={Detail} />

        <Redirect from="*" to="/" />

      </Switch>

    </>

  </Router>

);

 

( git remote -v // 올린거확인)