Comment publier un site Web réalisé par Node.js sur des pages Github?

104

J'ai créé un site Web en utilisant Node.js comme serveur. Comme je le sais, le fichier node.js devrait commencer à fonctionner en tapant des commandes dans le terminal, je ne suis donc pas sûr que Github Pages prend en charge l'hébergement node.js. Donc qu'est ce que je devrais faire?

dyzdyz010
la source
2
Jetez également un œil à github.com/assemble/assemble , c'est un générateur de site statique basé sur grunt.js. Fondamentalement, vous exécutez simplement grunt assemblegit commit et poussez vers la branche gh-pages et vous êtes en marche.
jonschlinkert
Heroku peut vous aider heroku.com
Achraf

Réponses:

103

Les pages GitHub n'hébergent que des pages HTML statiques. Aucune technologie côté serveur n'est prise en charge, les applications Node.js ne s'exécutent donc pas sur les pages GitHub. Il y a beaucoup de fournisseurs d' hébergement, énumérés sur le wiki Node.js .

Le brouillard d'application semble être le plus économique car il fournit un hébergement gratuit pour les projets avec 2 Go de RAM (ce qui est plutôt bien si vous me le demandez).
Comme indiqué ici , AppFog a supprimé son plan gratuit pour les nouveaux utilisateurs.

Si vous souhaitez héberger des pages statiques sur GitHub, lisez ce guide . Si vous prévoyez d'utiliser Jekyll , ce guide vous sera très utile.

Akshat Jiwan Sharma
la source
1
Et cet exemple alors?: Idflood.github.io/ThreeNodes.js/public/index.html . Qui est sur Node.js si vous regardez le code: github.com/idflood/ThreeNodes.js
Lilian A. Moraru
4
@ LilianA.Moraru C'est une page de projet. Pour les pages de projet, une branche spéciale doit être créée appelée gh-pages. Jetez un œil à la branche gh-pages du référentiel. Elle contient des fichiers html purs. le lien provient en fait de la branche gh-pages.
Akshat Jiwan Sharma
Bon repo au fait.
Akshat Jiwan Sharma
@Akshat_Jiwan_Sharma Vous avez raison. C'est aussi ce que je savais, mais aujourd'hui, j'ai vu ce site sur github et j'ai pensé que vous pouviez réellement utiliser Node.js. Je n'ai pas observé que c'était juste un référentiel dans l'organisation. Si c'était l'organisation elle-même, elle ne serait pas dans la branche principale ...
Lilian A. Moraru
1
repl.it prend désormais en charge l'hébergement d'applications gratuit, même si je ne suis pas sûr de la quantité de mémoire dont il dispose, ni même de la manière de le connecter aux référentiels Git. Cela pourrait cependant être utile pour les petits projets.
Neil Chowdhury
32

Nous, les amateurs de Javascript, n'avons pas besoin d'utiliser Ruby (Jekyll ou Octopress) pour générer des pages statiques dans les pages Github, nous pouvons utiliser Node.js et Harp , par exemple:

Voici les étapes . Abstrait:

  1. Créer un nouveau référentiel
  2. Cloner le référentiel

    git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
  3. Initialisez une application Harp (localement):

    harp init _harp

assurez-vous de nommer le dossier avec un trait de soulignement au début; lorsque vous déployez sur des pages GitHub, vous ne souhaitez pas que vos fichiers source soient diffusés.

  1. Compilez votre application Harp

    harp compile _harp ./
  2. Déployer sur Gihub

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

Et c'est un tutoriel sympa avec des détails sur des trucs sympas comme les mises en page, les partiels, Jade et Less.

Johann Echavarria
la source
3
Je suis un amoureux du rubis, mais je vais le tromper un peu. La combinaison harpe + pages google est géniale !!!
Alter Lagos
3
Soyez prudent lors de l'installation de la harpe sur un projet déjà existant!
Mehul Tandale
1

J'ai pu configurer des actions github pour valider automatiquement les résultats d'une commande de construction de nœud ( yarn builddans mon cas, mais cela devrait également fonctionner avec npm) dans la gh-pagesbranche chaque fois qu'un nouveau commit est poussé vers master.

Bien que ce ne soit pas complètement idéal car je voudrais éviter de valider les fichiers construits, il semble que ce soit actuellement le seul moyen de publier sur des pages github.

J'ai basé mon flux de travail sur ce guide pour une bibliothèque de réactions différente et j'ai dû apporter les modifications suivantes pour que cela fonctionne pour moi:

  • a mis à jour l'étape "setup node" pour utiliser la version trouvée ici car celle de l'exemple sur laquelle je le basais lançait des erreurs car elle ne pouvait pas trouver l'action correcte.
  • supprimez la ligne contenant yarn exportparce que cette commande n'existe pas et qu'elle ne semble rien ajouter d'utile (vous pouvez également modifier la ligne de construction au-dessus en fonction de vos besoins)
  • J'ai également ajouté une envdirective à l' yarn buildétape afin que je puisse inclure le hachage SHA du commit qui a généré la construction dans mon application, mais c'est facultatif

Voici mon action github complète:

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

Solution alternative

La documentation pour next.js fournit également des instructions pour la configuration avec Vercel qui semble être un service d'hébergement pour les applications node.js similaires aux pages github. Je n'ai pas essayé cela cependant et ne peux donc pas dire à quel point cela fonctionne.

Code moral
la source
-26

Ce sont des étapes très simples pour pousser votre application node js du local vers GitHub.

Pas:

  1. Créez d'abord un nouveau référentiel sur GitHub
  2. Ouvrez Git CMD installé sur votre système (Installez GitHub Desktop )
  3. Clonez le référentiel sur votre système avec la commande: git clone repo-url
  4. Maintenant, copiez tous vos fichiers d'application dans cette bibliothèque clonée si elle n'y est pas
  5. Préparez tout pour vous engager: git add -A
  6. Validez les modifications suivies et préparez-les à être poussées vers un référentiel distant: git commit -a -m "First Commit"
  7. Transférez les modifications de votre référentiel local vers GitHub: git push origin master
RAM
la source
15
Tout ce que vous avez fait est de montrer comment télécharger des fichiers dans le référentiel Github via git, d'abord comprendre les questions avant de laisser vos réponses, afin de faire des contributions significatives sur StackOverflow
Precious Tom
1
Vous avez complètement mal compris la question
Christopher Thomas
Mauvaise réponse, ce n'est pas ce qui est demandé
Mr_Hmp