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?
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?
Risposte:
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.
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:
Clona il repository
git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
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.
Compila la tua app Harp
harp compile _harp ./
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.
Sono stato in grado di impostare azioni github per eseguire automaticamente il commit dei risultati di un comando di build del nodo ( yarn build
nel mio caso ma dovrebbe funzionare anche con npm) al gh-pages
ramo 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:
yarn export
perché 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)env
direttiva al yarn build
passaggio in modo da poter includere l'hash SHA del commit che ha generato la build all'interno della mia app, ma questo è opzionaleEcco 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
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.
È molto semplice eseguire il push dell'applicazione node js da locale a GitHub.
Passaggi:
git clone repo-url
git add -A
git commit -a -m "First Commit"
git push origin master
grunt assemble
git commit e spingere al ramo gh-pages e sei fuori e corri.