[node.js] Node.js에서 만든 웹 사이트를 Github 페이지에 게시하는 방법은 무엇입니까?

Node.js를 서버로 사용하여 웹 사이트를 만들었습니다. 아시다시피 node.js 파일은 터미널에 명령을 입력하여 작동을 시작해야하므로 Github Pages가 node.js-hosting을 지원하는지 확실하지 않습니다. 그래서 내가 무엇을해야하니?



답변

GitHub 페이지는 정적 HTML 페이지 만 호스팅합니다. 서버 측 기술이 지원되지 않으므로 Node.js 애플리케이션은 GitHub 페이지에서 실행되지 않습니다. Node.js 위키 에 나열된 것처럼 많은 호스팅 제공 업체가 있습니다 .

앱 포그는 2GB RAM이있는 프로젝트에 대해 무료 호스팅을 제공하므로 가장 경제적 인 것 같습니다.
여기언급 된대로 AppFog는 신규 사용자를위한 무료 요금제를 제거했습니다.

GitHub에서 정적 페이지를 호스팅하려면 이 가이드 를 읽어 보세요. Jekyll 을 사용할 계획 이라면 이 가이드 가 매우 도움이 될 것입니다.


답변

Javascript 애호가 인 우리는 Github 페이지에서 정적 페이지를 생성하기 위해 Ruby (Jekyll 또는 Octopress)를 사용할 필요가 없습니다 . 예를 들어 Node.js 및 Harp를 사용할 수 있습니다 .

다음은 단계 입니다. 요약:

  1. 새 저장소 생성
  2. 리포지토리 복제

    git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
  3. Harp 앱 초기화 (로컬) :

    harp init _harp

처음에 밑줄을 사용하여 폴더 이름을 지정하십시오. GitHub Pages에 배포 할 때 소스 파일이 제공되는 것을 원하지 않습니다.

  1. Harp 앱 컴파일

    harp compile _harp ./
  2. Gihub에 배포

    git add -A
    git commit -a -m "First Harp + Pages commit"
    git push origin master

그리고 이것은 레이아웃, 부분, Jade 및 Less와 같은 멋진 항목에 대한 세부 정보 가 포함 된 멋진 자습서 입니다.


답변

노드 빌드 명령의 결과를 자동으로 커밋하도록 github 작업 을 설정할 수있었습니다 ( yarn build내 경우에는 npm에서도 작동해야 함).gh-pages새 커밋이 마스터에 푸시 될 때마다 .

빌드 된 파일을 커밋하는 것을 피하고 싶기 때문에 완전히 이상적은 아니지만 이것이 현재 github 페이지에 게시하는 유일한 방법 인 것 같습니다.

다른 반응 라이브러리에 대한 가이드 의 워크 플로를 기반으로 했으며,이를 위해 작동하도록 다음과 같이 변경해야했습니다.

  • 여기에 있는 버전을 사용하기 위해 “설정 노드”단계를 업데이트했습니다 . 샘플에서 가져온 버전 이 올바른 작업을 찾을 수 없기 때문에 오류가 발생했기 때문입니다.
  • yarn export해당 명령이 존재하지 않고 도움이되는 내용을 추가하지 않는 것 같기 때문에 포함 된 줄을 제거합니다 (위의 빌드 줄을 필요에 맞게 변경할 수도 있습니다).
  • 또한 앱 내부에서 빌드를 생성 한 커밋의 SHA 해시를 포함 할 수 있도록 단계에 env지시문을 추가 yarn build했지만 이는 선택 사항입니다.

내 전체 github 작업은 다음과 같습니다.

name: github pages

on:
    push:
        branches:
        - master

jobs:
    deploy:
        runs-on: ubuntu-18.04
        steps:
        - uses: actions/checkout@v2

        - name: Setup Node
            uses: actions/setup-node@v2-beta
            with:
            node-version: '12'

        - name: Get yarn cache
            id: yarn-cache
            run: echo "::set-output name=dir::$(yarn cache dir)"

        - name: Cache dependencies
            uses: actions/cache@v2
            with:
            path: ${{ steps.yarn-cache.outputs.dir }}
            key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
            restore-keys: |
                ${{ runner.os }}-yarn-
        - run: yarn install --frozen-lockfile
        - run: yarn build
            env:
            REACT_APP_GIT_SHA: ${{ github.SHA }}

        - name: Deploy
            uses: peaceiris/actions-gh-pages@v3
            with:
            github_token: ${{ secrets.GITHUB_TOKEN }}
            publish_dir: ./build

대체 솔루션

문서 next.js에 대한도 함께 설정하는 방법에 대한 지침을 제공 Vercel 페이지를 GitHub의 앱과 유사한 앱 Node.js를위한 호스팅 서비스로 표시한다. 나는 이것을 시도하지 않았고 그것이 얼마나 잘 작동하는지 말할 수 없습니다.


답변

노드 js 애플리케이션을 로컬에서 GitHub로 푸시하는 것은 매우 간단한 단계입니다.

단계 :

  1. 먼저 GitHub에 새 저장소를 만듭니다.
  2. 시스템에 설치된 Git CMD를 엽니 다 ( GitHub 데스크톱 설치 ).
  3. 다음 명령을 사용하여 저장소를 시스템에 복제합니다. git clone repo-url
  4. 이제 복제 된 라이브러리가 없으면 모든 응용 프로그램 파일을 복사합니다.
  5. 커밋 할 모든 것을 준비하세요. git add -A
  6. 추적 된 변경 사항을 커밋하고 원격 저장소로 푸시되도록 준비합니다. git commit -a -m "First Commit"
  7. 로컬 리포지토리의 변경 사항을 GitHub에 푸시합니다. git push origin master


답변