Come pubblicare un sito web realizzato da Node.js su Github Pages?


104

Ho creato un sito Web utilizzando Node.js come server. Come so, il file node.js dovrebbe iniziare a funzionare digitando i comandi nel terminale, quindi non sono sicuro che Github Pages supporti l'hosting node.js. Quindi cosa dovrei fare?


2
Dai un'occhiata anche a github.com/assemble/assemble , è un generatore di siti statici basato su grunt.js. Fondamentalmente devi solo eseguire grunt assemblegit commit e spingere al ramo gh-pages e sei fuori e corri.
jonschlinkert

Heroku potrebbe aiutarti su heroku.com
Achraf

Risposte:


102

Le pagine GitHub ospitano solo pagine HTML statiche. Nessuna tecnologia lato server è supportata, quindi le applicazioni Node.js non verranno eseguite sulle pagine GitHub. Ci sono un sacco di fornitori di hosting, elencati sulla wiki Node.js .

L'app fog sembra essere la più economica in quanto fornisce hosting gratuito per progetti con 2 GB di RAM (che è abbastanza buono se me lo chiedi).
Come affermato qui , AppFog ha rimosso il piano gratuito per i nuovi utenti.

Se vuoi ospitare pagine statiche su GitHub, leggi questa guida . Se prevedi di utilizzare Jekyll , questa guida ti sarà molto utile.


1
E allora questo esempio ?: idflood.github.io/ThreeNodes.js/public/index.html . Che è su Node.js se dai un'occhiata al codice: github.com/idflood/ThreeNodes.js
Lilian A. Moraru

4
@ LilianA.Moraru Quella è una pagina del progetto. Per le pagine del progetto è necessario creare un ramo speciale chiamato gh-pages. Dai un'occhiata al ramo gh-pages del repository. Contiene file html puri. Quindi tutto ciò che vedi sul il collegamento proviene effettivamente dal ramo gh-pages.
Akshat Jiwan Sharma

Bel repo tra l'altro.
Akshat Jiwan Sharma

@Akshat_Jiwan_Sharma Hai ragione. Questo è anche quello che sapevo, ma oggi ho visto questo sito su GitHub e ho pensato che puoi effettivamente usare Node.js. Non ho notato che era solo un deposito nell'organizzazione. Se fosse l'organizzazione stessa di quanto sarebbe stato nel ramo principale ...
Lilian A. Moraru

1
repl.it ora supporta l'hosting di app gratuito, anche se non sono sicuro di quanta memoria abbia, o anche di come collegarlo ai repository Git. Potrebbe essere utile per piccoli progetti, però.
Neil Chowdhury

32

Noi, gli amanti di Javascript, non dobbiamo usare Ruby (Jekyll o Octopress) per generare pagine statiche nelle pagine Github, possiamo usare Node.js e Harp , ad esempio:

Questi sono i passaggi . Astratto:

  1. Crea un nuovo repository
  2. Clona il repository

    git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
  3. Inizializza un'app Harp (localmente):

    harp init _harp

assicurati di nominare la cartella con un trattino basso all'inizio; quando esegui la distribuzione su GitHub Pages, non vuoi che i tuoi file sorgente vengano serviti.

  1. Compila la tua app Harp

    harp compile _harp ./
  2. Distribuisci su Gihub

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

E questo è un fantastico tutorial con dettagli su cose carine come layout, parziali, Jade e Less.


3
Sono un amante dei rubini, ma lo tradirò un po '. La combinazione di arpa + pagine google è fantastica !!!
Alter Lagos

3
Fai attenzione quando installi l'arpa su un progetto già esistente!
Mehul Tandale

1

Sono stato in grado di impostare azioni github per eseguire automaticamente il commit dei risultati di un comando di build del nodo ( yarn buildnel mio caso ma dovrebbe funzionare anche con npm) al gh-pagesramo ogni volta che un nuovo commit viene inviato al master.

Sebbene non sia del tutto ideale in quanto vorrei evitare di eseguire il commit dei file compilati, sembra che questo sia attualmente l'unico modo per pubblicare su pagine GitHub.

Ho basato il mio flusso di lavoro su questa guida per una libreria di reazione diversa e ho dovuto apportare le seguenti modifiche per farlo funzionare per me:

  • aggiornato il passaggio "setup node" per utilizzare la versione trovata qui poiché quella dell'esempio su cui lo stavo basando generava errori perché non riusciva a trovare l'azione corretta.
  • rimuovere la riga contenente yarn exportperché quel comando non esiste e non sembra aggiungere nulla di utile (potresti anche voler cambiare la riga di compilazione sopra di essa in base alle tue esigenze)
  • Ho anche aggiunto una envdirettiva al yarn buildpassaggio in modo da poter includere l'hash SHA del commit che ha generato la build all'interno della mia app, ma questo è opzionale

Ecco la mia azione completa su 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

Soluzione alternativa

La documentazione per next.js fornisce anche istruzioni per la configurazione con Vercel che sembra essere un servizio di hosting per le app node.js simili alle pagine GitHub. Non l'ho provato e quindi non posso parlare di come funziona bene.


-26

È molto semplice eseguire il push dell'applicazione node js da locale a GitHub.

Passaggi:

  1. Per prima cosa crea un nuovo repository su GitHub
  2. Apri Git CMD installato sul tuo sistema (Installa GitHub Desktop )
  3. Clona il repository sul tuo sistema con il comando: git clone repo-url
  4. Ora copia tutti i file dell'applicazione in questa libreria clonata se non è presente
  5. Prepara tutto per impegnarti: git add -A
  6. Esegui il commit delle modifiche rilevate e le prepara per il push in un repository remoto: git commit -a -m "First Commit"
  7. Esegui il push delle modifiche nel tuo repository locale su GitHub: git push origin master

14
Tutto quello che hai fatto è mostrare come caricare i file nel repository Github tramite git, capire prima le domande prima di lasciare le tue risposte, in modo da dare contributi significativi su StackOverflow
Precious Tom

1
Hai completamente frainteso la domanda
Christopher Thomas,

Risposta sbagliata, questo non è ciò che viene chiesto
Mr_Hmp
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.