Wie veröffentliche ich eine Website von Node.js auf Github Pages?

103

Ich habe eine Website mit Node.js als Server erstellt. Wie ich weiß, sollte die Datei node.js durch Eingabe von Befehlen im Terminal funktionieren. Daher bin ich mir nicht sicher, ob Github Pages das Hosting von node.js unterstützt. Also was soll ich tun?

dyzdyz010
quelle
2
Schauen Sie sich auch github.com/assemble/assemble an, es ist ein statischer Site-Generator, der auf grunt.js basiert. Grundsätzlich führen Sie einfach grunt assemblegit commit aus und drücken auf den gh-pages-Zweig, und schon können Sie loslegen.
Jonschlinkert
Heroku kann Ihnen helfen heroku.com
Achraf

Antworten:

102

GitHub-Seiten hosten nur statische HTML-Seiten. Es wird keine serverseitige Technologie unterstützt, sodass Node.js-Anwendungen nicht auf GitHub-Seiten ausgeführt werden. Es gibt viele Hosting-Anbieter, wie im Node.js-Wiki aufgeführt .

App-Nebel scheint am wirtschaftlichsten zu sein, da er kostenloses Hosting für Projekte mit 2 GB RAM bietet (was ziemlich gut ist, wenn Sie mich fragen).
Wie hier angegeben , hat AppFog den kostenlosen Plan für neue Benutzer entfernt.

Wenn Sie statische Seiten auf GitHub hosten möchten, lesen Sie diese Anleitung . Wenn Sie Jekyll verwenden möchten , ist diese Anleitung sehr hilfreich.

Akshat Jiwan Sharma
quelle
1
Was ist dann mit diesem Beispiel?: Idflood.github.io/ThreeNodes.js/public/index.html . Welches ist auf Node.js, wenn Sie sich den Code ansehen: github.com/idflood/ThreeNodes.js
Lilian A. Moraru
4
@ LilianA.Moraru Das ist eine Projektseite. Für Projektseiten muss ein spezieller Zweig namens gh-pages erstellt werden. Sehen Sie sich den gh-pages- Zweig des Repositorys an. Er enthält reine HTML-Dateien. Also alles, was Sie auf der Seite sehen Der Link stammt eigentlich aus dem Gh-Pages-Zweig.
Akshat Jiwan Sharma
Nettes Repo übrigens.
Akshat Jiwan Sharma
@Akshat_Jiwan_Sharma Du hast recht. Das wusste ich auch, aber heute habe ich diese Seite auf Github gesehen und dachte, dass Sie Node.js tatsächlich verwenden können. Ich habe nicht bemerkt, dass es sich nur um ein Repository in der Organisation handelt. Wenn es die Organisation selbst wäre, dann wäre es in der Hauptniederlassung gewesen ...
Lilian A. Moraru
1
repl.it unterstützt jetzt kostenloses App-Hosting, obwohl ich nicht sicher bin, wie viel Speicher es hat oder wie ich es mit Git-Repositorys verbinden soll. Es kann jedoch für kleine Projekte nützlich sein.
Neil Chowdhury
32

Wir, die Javascript-Liebhaber, müssen Ruby (Jekyll oder Octopress) nicht verwenden, um statische Seiten in Github-Seiten zu generieren. Wir können beispielsweise Node.js und Harp verwenden :

Dies sind die Schritte . Abstrakt:

  1. Erstellen Sie ein neues Repository
  2. Klonen Sie das Repository

    git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
  3. Initialisieren Sie eine Harfen-App (lokal):

    harp init _harp

Stellen Sie sicher, dass Sie den Ordner am Anfang mit einem Unterstrich benennen. Wenn Sie auf GitHub Pages bereitstellen, möchten Sie nicht, dass Ihre Quelldateien bereitgestellt werden.

  1. Kompilieren Sie Ihre Harfen-App

    harp compile _harp ./
  2. In Gihub bereitstellen

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

Und dies ist ein cooles Tutorial mit Details zu netten Dingen wie Layouts, Partials, Jade und Less.

Johann Echavarria
quelle
3
Ich bin ein Rubinliebhaber, aber ich werde es ein bisschen betrügen. Die Kombination von Harfe + Google-Seiten ist fantastisch !!!
Alter Lagos
3
Seien Sie vorsichtig, wenn Sie Harfe in einem bereits vorhandenen Projekt installieren!
Mehul Tandale
1

Ich konnte Github-Aktionen einrichten , um die Ergebnisse eines Node-Build-Befehls ( yarn buildin meinem Fall, aber es sollte auch mit npm funktionieren) automatisch in den gh-pagesZweig zu übertragen, wenn ein neues Commit an den Master gesendet wird.

Obwohl dies nicht ganz ideal ist, da ich das Festschreiben der erstellten Dateien vermeiden möchte, scheint dies derzeit die einzige Möglichkeit zu sein, auf Github-Seiten zu veröffentlichen.

Ich habe meinen Workflow anhand dieses Handbuchs für eine andere Reaktionsbibliothek erstellt und musste die folgenden Änderungen vornehmen, damit er für mich funktioniert:

  • Der Schritt "Setup-Knoten" wurde aktualisiert, um die hier gefundene Version zu verwenden, da die aus dem Beispiel, auf dem ich sie basierte, Fehler auslöste, weil sie nicht die richtige Aktion finden konnte.
  • Entfernen Sie die Zeile mit, yarn exportda dieser Befehl nicht vorhanden ist und nichts Hilfreiches hinzuzufügen scheint (möglicherweise möchten Sie auch die darüber liegende Erstellungszeile an Ihre Anforderungen anpassen).
  • Ich envhabe dem yarn buildSchritt auch eine Direktive hinzugefügt , damit ich den SHA-Hash des Commits, der den Build generiert hat, in meine App aufnehmen kann. Dies ist jedoch optional

Hier ist meine volle Github-Aktion:

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

Alternative Lösung

Die Dokumentation zu next.js enthält auch Anweisungen zum Einrichten mit Vercel , einem Hosting-Service für node.js-Apps, die Github-Seiten ähneln. Ich habe dies jedoch nicht versucht und kann daher nicht sagen, wie gut es funktioniert.

Moralkodex
quelle
-26

Es ist sehr einfach, die Anwendung Ihres Knotens von lokal auf GitHub zu verschieben.

Schritte:

  1. Erstellen Sie zuerst ein neues Repository auf GitHub
  2. Öffnen Sie das auf Ihrem System installierte Git CMD (Install GitHub Desktop )
  3. Klonen Sie das Repository mit dem folgenden Befehl auf Ihr System: git clone repo-url
  4. Kopieren Sie nun alle Ihre Anwendungsdateien in diese geklonte Bibliothek, falls diese nicht vorhanden ist
  5. Machen Sie alles bereit, um sich zu verpflichten: git add -A
  6. Übernehmen Sie die nachverfolgten Änderungen und bereiten Sie sie so vor, dass sie in ein Remote-Repository übertragen werden: git commit -a -m "First Commit"
  7. Übertragen Sie die Änderungen in Ihrem lokalen Repository auf GitHub: git push origin master
RAM
quelle
14
Alles, was Sie getan haben, ist zu zeigen, wie Sie Dateien über git in Github repo hochladen, zuerst Fragen verstehen, bevor Sie Ihre Antworten hinterlassen, damit Sie um
Precious Tom
1
Sie haben die Frage völlig falsch verstanden
Christopher Thomas
Falsche Antwort, das wird nicht gefragt
Mr_Hmp