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


104

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


2
github.com/assemble/assemble 도 살펴보십시오. grunt.js 를 기반으로하는 정적 사이트 생성기입니다. 기본적으로 실행 grunt assemble한 다음 git commit을 실행 하고 gh-pages 브랜치로 푸시하면 실행 중입니다.
jonschlinkert

Heroku가 heroku.com을
Achraf

답변:


104

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

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

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


1
이 예제는 어떻 습니까? : idflood.github.io/ThreeNodes.js/public/index.html . 어떤 당신이 코드를 한 번 봐 걸릴 경우 Node.js를에 : github.com/idflood/ThreeNodes.js
릴리안 A. Moraru

5
@ LilianA.Moraru 프로젝트 페이지입니다. 프로젝트 페이지의 경우 gh-pages 라는 특별한 브랜치를 만들어야 합니다. 저장소 의 gh-pages 브랜치를 살펴보세요. 순수한 html 파일이 포함되어 있습니다. 링크는 실제로 gh-pages 지점에서 가져온 것입니다.
Akshat Jiwan Sharma 2013

그건 그렇고 좋은 repo.
Akshat Jiwan Sharma 2013

@Akshat_Jiwan_Sharma 당신이 맞습니다. 그것도 제가 알고있는 것이지만 오늘은 github에서이 사이트를보고 실제로 Node.js를 사용할 수 있다고 생각했습니다. 나는 그것이 단지 조직의 저장소라는 것을 보지 못했습니다. ... 그것은 마스터 지점에 있었다의 것보다 그 조직 자체를했다면
릴리안 A. Moraru

1
repl.it는 이제 무료 앱 호스팅을 지원하지만 메모리 용량이나 Git 리포지토리에 연결하는 방법도 잘 모르겠습니다. 하지만 소규모 프로젝트에는 유용 ​​할 수 있습니다.
Neil Chowdhury

32

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와 같은 멋진 항목에 대한 세부 정보 가 포함 된 멋진 자습서 입니다.


3
나는 루비 애호가이지만 조금 속일 것이다. 하프 + 구글 페이지의 조합은 굉장합니다 !!!
알터 라고스

3
이미 존재하는 프로젝트에 하프를 설치할 때주의하십시오!
Mehul Tandale

1

노드 빌드 명령의 결과를 자동으로 커밋하도록 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를위한 호스팅 서비스로 표시한다. 나는 이것을 시도하지 않았고 그것이 얼마나 잘 작동하는지 말할 수 없습니다.


-27

노드 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

16
모든 당신은 당신에 유래에 의미있는 기여를 할 수 있도록, 먼저 답변을 떠나기 전에 질문을 이해 Github에서의 repo를 통해 자식에 파일을 업로드하는 방법을 보여 않았다
소중한 톰

1
당신은 완전히 질문을 오해
크리스토퍼 토마스

오답, 이것은 요청 된 것이 아닙니다
Mr_Hmp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.