Zrobiłem stronę internetową, używając Node.js jako serwera. Jak wiem, plik node.js powinien zacząć działać, wpisując polecenia w terminalu, więc nie jestem pewien, czy Github Pages obsługuje hosting node.js. Więc co powinienem zrobić?
Zrobiłem stronę internetową, używając Node.js jako serwera. Jak wiem, plik node.js powinien zacząć działać, wpisując polecenia w terminalu, więc nie jestem pewien, czy Github Pages obsługuje hosting node.js. Więc co powinienem zrobić?
Odpowiedzi:
Strony GitHub obsługują tylko statyczne strony HTML. Żadna technologia po stronie serwera nie jest obsługiwana, więc aplikacje Node.js nie będą działać na stronach GitHub. Istnieje wiele dostawców hostingu, jak wymienione na wiki node.js .
Mgła aplikacji wydaje się być najbardziej ekonomiczna, ponieważ zapewnia darmowy hosting dla projektów z 2 GB pamięci RAM (co jest całkiem dobre, jeśli o mnie chodzi).
Jak wspomniano tutaj , AppFog usunął swój darmowy plan dla nowych użytkowników.
Jeśli chcesz hostować strony statyczne w serwisie GitHub, przeczytaj ten przewodnik . Jeśli planujesz używać Jekyll , ten przewodnik będzie bardzo pomocny.
My, miłośnicy Javascript, nie musimy używać Rubiego (Jekyll lub Octopress) do generowania statycznych stron na stronach Github, możemy użyć Node.js i Harp , na przykład:
Oto kroki . Abstrakcyjny:
Sklonuj repozytorium
git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
Zainicjuj aplikację Harp (lokalnie):
harp init _harp
pamiętaj, aby nazwać folder z podkreśleniem na początku; podczas wdrażania na GitHub Pages nie chcesz, aby pliki źródłowe były obsługiwane.
Skompiluj swoją aplikację Harp
harp compile _harp ./
Wdróż do Gihub
git add -A
git commit -a -m "First Harp + Pages commit"
git push origin master
A to jest fajny samouczek ze szczegółami o fajnych rzeczach, takich jak układy, częściowe, Jade i Less.
Udało mi się skonfigurować akcje github, aby automatycznie zatwierdzać wyniki polecenia budowania węzła ( yarn build
w moim przypadku, ale powinno to działać również z npm) do gh-pages
gałęzi, gdy nowe zatwierdzenie zostanie przesłane do mastera.
Chociaż nie jest to do końca idealne rozwiązanie, ponieważ chciałbym uniknąć wysyłania skompilowanych plików, wydaje się, że jest to obecnie jedyny sposób publikowania na stronach github.
Oparłem mój przepływ pracy na tym przewodniku dla innej biblioteki reagowania i musiałem wprowadzić następujące zmiany, aby działał dla mnie:
yarn export
ponieważ to polecenie nie istnieje i wydaje się, że nie dodaje nic pomocnego (możesz również zmienić linię budowania powyżej, aby dopasować ją do swoich potrzeb)env
dyrektywę do yarn build
kroku, aby móc dołączyć skrót SHA zatwierdzenia, który wygenerował kompilację w mojej aplikacji, ale jest to opcjonalneOto moja pełna akcja na githubie:
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
W docs dla next.js zapewnia również instrukcje dotyczące konfigurowania z Vercel który wydaje się być gospodarzem usługi dla node.js aplikacje podobne do GitHub stron. Nie próbowałem tego jednak i nie mogę powiedzieć, jak dobrze to działa.
Przekazanie aplikacji node js z lokalnego do GitHub jest bardzo proste.
Kroki:
git clone repo-url
git add -A
git commit -a -m "First Commit"
git push origin master
grunt assemble
a następnie git commit i wypchnij do gałęzi gh-pages i gotowe.