Як опублікувати веб-сайт, створений Node.js, на Github Pages?


104

Я створив веб-сайт, використовуючи Node.js як сервер. Як я знаю, файл node.js повинен почати працювати, вводячи команди в терміналі, тому я не впевнений, що Github Pages підтримує node.js-хостинг. То що мені робити?


2
Погляньте також на github.com/assemble/assemble , це статичний генератор сайтів на основі grunt.js. В основному ви просто запускаєте, grunt assembleпотім git коміт і натискаєте на гілку gh-сторінок, і ви починаєте працювати.
jonschlinkert

Heroku може допомогти вам heroku.com
Ахраф

Відповіді:


103

Сторінки GitHub містять лише статичні HTML-сторінки. Жодна технологія на стороні сервера не підтримується, тому програми Node.js не будуть працювати на сторінках GitHub. Є багато хостинг - провайдерів, які перераховані на вікі Node.js .

Туман додатків видається найбільш економічним, оскільки він забезпечує безкоштовний хостинг для проектів з 2 Гб оперативної пам'яті (що дуже добре, якщо ви запитаєте мене).
Як зазначено тут , AppFog видалив їх безкоштовний тарифний план для нових користувачів.

Якщо ви хочете розмістити статичні сторінки на GitHub, прочитайте цей посібник . Якщо ви плануєте використовувати Jekyll , тоді цей посібник буде дуже корисним.


1
Що тоді з цим прикладом ?: idflood.github.io/ThreeNodes.js/public/index.html . Що знаходиться на Node.js, якщо ви подивитесь на код: github.com/idflood/ThreeNodes.js
Ліліан А. Морару,

4
@ LilianA.Moraru Це є проект page.For сторінки проекту спеціальний розділ повинен бути створений , називається GH-pages.Take погляд на GH-сторінках гілки repository.It містить чистий HTML files.So все , що ви бачите на посилання насправді з гілки gh-сторінок.
Акшат Джіван Шарма

Приємне репо до речі.
Акшат Джіван Шарма

@Akshat_Jiwan_Sharma Ви маєте рацію. Це теж те, що я знав, але сьогодні я побачив цей сайт на github і подумав, що ви насправді можете використовувати Node.js. Я не спостерігав, що це просто сховище в організації. Якби це була сама організація, ніж вона була б у головному відділенні ...
Ліліан А. Морару,

1
repl.it тепер підтримує безкоштовний хостинг додатків, хоча я не впевнений, скільки в нього пам’яті і навіть як підключити його до сховищ Git. Однак це може бути корисно для невеликих проектів.
Ніл Чоудхурі,

32

Нам, любителям Javascript, не потрібно використовувати Ruby (Jekyll або Octopress) для створення статичних сторінок на сторінках Github, ми можемо використовувати Node.js і Harp , наприклад:

Це кроки . Анотація:

  1. Створіть новий сховище
  2. Клонуйте сховище

    git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
  3. Ініціалізуйте програму Harp (локально):

    harp init _harp

обов’язково назвіть папку з підкресленням на початку; коли ви розгортаєтеся на сторінках GitHub, ви не хочете, щоб ваші вихідні файли обслуговувалися.

  1. Складіть свій додаток для арфи

    harp compile _harp ./
  2. Розгортання до Гіхуба

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

І це класний підручник із подробицями про такі приємні речі, як макети, частки, Jade та Less.


3
Я любитель рубінів, але трохи обдурю. Поєднання сторінок арфа + google чудово !!!
Alter Lagos

3
Будьте обережні, встановлюючи арфу на вже існуючому проекті!
Mehul Tandale

1

Я зміг налаштувати дії github для автоматичного фіксації результатів команди збірки вузлів ( yarn buildу моєму випадку, але це також повинно працювати з npm) у gh-pagesгілку, коли новий коміт буде натиснуто на master.

Хоча це не зовсім ідеально, оскільки я хотів би уникнути фіксації вбудованих файлів, схоже, що це наразі єдиний спосіб публікації на сторінках github.

Я базував свій робочий процес з цього посібника для іншої бібліотеки реакцій, і мені довелося внести такі зміни, щоб він працював для мене:

  • оновив крок "вузол налаштування", щоб використовувати версію, знайдену тут, оскільки версія з зразка, на якій я її базував, видавала помилки, оскільки не могла знайти правильну дію.
  • видалити рядок, що містить, yarn exportоскільки ця команда не існує, і вона, здається, не додає нічого корисного (можливо, ви також захочете змінити рядок збірки над нею відповідно до ваших потреб)
  • Я також додав envдирективу до yarn buildкроку, щоб я міг включити хеш SHA коміту, який генерував збірку всередині мого додатка, але це необов'язково

Ось моя повна дія 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

Альтернативне рішення

У документах для next.js також містять інструкції по налаштуванню з Vercel , який , як видається, хостинг для Node.js додатків схожі на GitHub сторінки. Я не пробував цього, хоча і тому не можу говорити про те, наскільки добре це працює.


-26

Це дуже прості кроки, щоб перенести вашу програму node js з локальної на GitHub.

Кроки:

  1. Спочатку створіть нове сховище на GitHub
  2. Відкрийте Git CMD, встановлений у вашій системі (Встановіть GitHub Desktop )
  3. Клонуйте сховище до вашої системи командою: git clone repo-url
  4. Тепер скопіюйте всі файли програм у цю клоновану бібліотеку, якщо її там немає
  5. Підготуйте все до фіксації: git add -A
  6. Фіксує відстежувані зміни та готує їх до переміщення у віддалене сховище: git commit -a -m "First Commit"
  7. Надішліть зміни у своєму локальному сховищі на GitHub: git push origin master

15
Все, що ви зробили, це показати, як завантажувати файли до репозиторію Github через git, спочатку зрозумійте питання, перш ніж залишати свої відповіді, тому ви зробите значущий внесок у StackOverflow
Precious Tom,

1
Ви абсолютно неправильно зрозуміли запитання
Крістофер Томас

Неправильна відповідь, запитують не цього
Mr_Hmp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.