Làm thế nào để xuất bản một trang web được tạo bởi Node.js lên Trang Github?


103

Tôi đã tạo một trang web bằng cách sử dụng Node.js làm máy chủ. Như tôi biết, tệp node.js sẽ bắt đầu hoạt động bằng cách nhập các lệnh trong terminal, vì vậy tôi không chắc liệu Github Pages có hỗ trợ node.js-hosting hay không. Vậy tôi phải làm thế nào?


2
Cũng hãy xem github.com/assemble/assemble , nó là một trình tạo trang web tĩnh dựa trên grunt.js. Về cơ bản, bạn chỉ cần chạy grunt assemblesau đó git cam kết và đẩy đến nhánh gh-pages và bạn tắt và chạy.
jonschlinkert

Heroku có thể giúp bạn heroku.com
Achraf

Câu trả lời:


102

Các trang GitHub chỉ lưu trữ các trang HTML tĩnh. Không có công nghệ phía máy chủ nào được hỗ trợ, vì vậy các ứng dụng Node.js sẽ không chạy trên các trang GitHub. Có rất nhiều nhà cung cấp hosting, như được liệt kê trên wiki Node.js .

Ứng dụng sương mù có vẻ tiết kiệm nhất vì nó cung cấp dịch vụ lưu trữ miễn phí cho các dự án có RAM 2GB (khá tốt nếu bạn hỏi tôi).
Như đã nêu ở đây , AppFog đã xóa gói miễn phí của họ cho người dùng mới.

Nếu bạn muốn lưu trữ các trang tĩnh trên GitHub, hãy đọc hướng dẫn này . Nếu bạn định sử dụng Jekyll , thì hướng dẫn này sẽ rất hữu ích.


1
Vậy còn ví dụ này thì sao ?: idflood.github.io/ThreeNodes.js/public/index.html . Đó là trên Node.js nếu bạn xem mã: github.com/idflood/ThreeNodes.js
Lilian A. Moraru

4
@ LilianA.Moraru Đó là một trang dự án. Đối với các trang dự án, một nhánh đặc biệt phải được tạo gọi là gh-pages. Hãy xem nhánh gh-pages của kho lưu trữ. Nó chứa các tệp html thuần túy Vì vậy mọi thứ bạn thấy trên thực sự là từ nhánh gh-pages.
Akshat Jiwan Sharma

Nhân tiện, repo rất hay.
Akshat Jiwan Sharma

@Akshat_Jiwan_Sharma Bạn nói đúng. Đó cũng là những gì tôi đã biết, nhưng hôm nay tôi thấy trang web này trên github và nghĩ rằng bạn thực sự có thể sử dụng Node.js. Tôi không quan sát thấy rằng nó chỉ là một kho lưu trữ trong tổ chức. Nếu đó là tổ chức riêng của mình hơn nó sẽ về được trong các ngành thạc sĩ ...
Lilian A. Moraru

1
repl.it hiện hỗ trợ lưu trữ ứng dụng miễn phí, mặc dù tôi không chắc nó có bao nhiêu bộ nhớ, hoặc thậm chí cách kết nối nó với kho lưu trữ Git. Tuy nhiên, nó có thể hữu ích cho các dự án nhỏ.
Neil Chowdhury

32

Chúng tôi, những người yêu thích Javascript, không cần phải sử dụng Ruby (Jekyll hoặc Octopress) để tạo các trang tĩnh trong các trang Github, chúng tôi có thể sử dụng Node.js và Harp , ví dụ:

Đây là các bước . Trừu tượng:

  1. Tạo một kho lưu trữ mới
  2. Sao chép kho lưu trữ

    git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
  3. Khởi tạo ứng dụng Harp (cục bộ):

    harp init _harp

đảm bảo đặt tên thư mục bằng dấu gạch dưới ở đầu; khi bạn triển khai các Trang GitHub, bạn không muốn các tệp nguồn của mình được phân phát.

  1. Biên dịch ứng dụng Harp của bạn

    harp compile _harp ./
  2. Triển khai lên Gihub

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

đây là một hướng dẫn thú vị với các chi tiết về những thứ đẹp mắt như bố cục, phần, Ngọc và Ít hơn.


3
Tôi là một người yêu thích ruby, nhưng tôi sẽ lừa dối nó một chút. Sự kết hợp của harp + các trang google thật tuyệt vời !!!
Alter Lagos

3
Hãy cẩn thận khi cài đặt đàn hạc trên một dự án đã có sẵn!
Mehul Tandale

1

Tôi đã có thể thiết lập các hành động github để tự động cam kết kết quả của một lệnh xây dựng nút ( yarn buildtrong trường hợp của tôi nhưng nó cũng sẽ hoạt động với npm) cho gh-pagesnhánh bất cứ khi nào một cam kết mới được đẩy lên chính.

Mặc dù không hoàn toàn lý tưởng vì tôi muốn tránh phạm phải các tệp đã xây dựng, nhưng có vẻ như đây là cách duy nhất để xuất bản lên trang github.

Tôi dựa trên quy trình làm việc của mình từ hướng dẫn này cho một thư viện phản ứng khác và phải thực hiện các thay đổi sau để làm cho nó hoạt động với tôi:

  • đã cập nhật bước "nút thiết lập" để sử dụng phiên bản được tìm thấy ở đây vì phiên bản từ mẫu mà tôi đang căn cứ vào nó đã gây ra lỗi vì nó không thể tìm thấy hành động chính xác.
  • loại bỏ dòng chứa yarn exportvì lệnh đó không tồn tại và nó dường như không thêm bất kỳ điều gì hữu ích (bạn cũng có thể muốn thay đổi dòng xây dựng bên trên nó để phù hợp với nhu cầu của mình)
  • Tôi cũng đã thêm một envchỉ thị vào yarn buildbước để tôi có thể bao gồm băm SHA của cam kết đã tạo ra bản dựng bên trong ứng dụng của tôi, nhưng đây là tùy chọn

Đây là hành động github đầy đủ của tôi:

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

Giải pháp thay thế

Tài liệu cho next.js cũng cung cấp hướng dẫn thiết lập với Vercel , dịch vụ này dường như là một dịch vụ lưu trữ cho các ứng dụng node.js tương tự như các trang github. Tôi đã không thử điều này mặc dù và vì vậy không thể nói nó hoạt động tốt như thế nào.


-26

Đó là các bước rất đơn giản để đẩy ứng dụng js nút của bạn từ cục bộ sang GitHub.

Các bước:

  1. Đầu tiên hãy tạo một kho lưu trữ mới trên GitHub
  2. Mở Git CMD được cài đặt vào hệ thống của bạn (Cài đặt GitHub Desktop )
  3. Sao chép kho lưu trữ vào hệ thống của bạn bằng lệnh: git clone repo-url
  4. Bây giờ sao chép tất cả các tệp ứng dụng của bạn vào thư viện nhân bản này nếu nó không có ở đó
  5. Chuẩn bị sẵn sàng mọi thứ để cam kết: git add -A
  6. Cam kết các thay đổi được theo dõi và chuẩn bị đưa chúng vào kho lưu trữ từ xa: git commit -a -m "First Commit"
  7. Đẩy các thay đổi trong kho lưu trữ cục bộ của bạn lên GitHub: git push origin master

14
Tất cả các bạn đã là hiển thị như thế nào để tải lên các tập tin để Github repo qua git, đầu tiên hiểu câu hỏi trước khi rời khỏi câu trả lời của bạn, vì vậy bạn có những đóng góp có ý nghĩa trên StackOverflow
Precious Tom

1
Bạn hoàn toàn hiểu sai câu hỏi
Christopher Thomas,

Câu trả lời sai, đây không phải là những gì được hỏi
Mr_Hmp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.