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.gitZainicjuj aplikację Harp (lokalnie):
harp init _harppamię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 masterA 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 buildw moim przypadku, ale powinno to działać również z npm) do gh-pagesgałę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 exportponieważ 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)envdyrektywę do yarn buildkroku, 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-urlgit add -Agit commit -a -m "First Commit"git push origin master
grunt assemblea następnie git commit i wypchnij do gałęzi gh-pages i gotowe.