我使用Node.js作为服务器创建了一个网站。我知道,node.js文件应该通过在终端中键入命令开始工作,所以我不确定Github Pages是否支持node.js-hosting。那我该怎么办?
答案 0 :(得分:83)
GitHub页面仅托管静态HTML页面。不支持服务器端技术,因此Node.js应用程序不会在GitHub页面上运行。 Node.js wiki上列出了许多托管服务提供商。
App雾似乎是最经济的,因为它为2GB内存的项目提供免费托管(如果你问我,这是非常好的。)
As stated here,AppFog删除了新用户的免费计划。
如果您想在GitHub上托管静态页面,请阅读this guide。如果您打算使用Jekyll,那么this guide将非常有用。
答案 1 :(得分:27)
我们Javascript爱好者不必使用Ruby(Jekyll或Octopress)在Github页面中生成静态页面,我们可以使用Node.js和Harp,例如:
这些是steps。摘要:
克隆存储库
git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
初始化竖琴应用程序(本地):
harp init _harp
确保在开头用下划线命名文件夹;当您部署到GitHub页面时,您不希望提供源文件。
编译你的竖琴应用程序
harp compile _harp ./
部署到Gihub
git add -A
git commit -a -m "First Harp + Pages commit"
git push origin master
和this is a cool tutorial详细介绍布局,局部,Jade和Less等优秀内容。
答案 2 :(得分:3)
我能够设置github actions来自动将节点构建命令的结果(在我的情况下为yarn build
,但也应该与npm一起使用)提交到gh-pages
分支一个新的提交被推送到主服务器。
虽然我不是很理想,因为我想避免提交已生成的文件,但看来这是当前发布到github页面的唯一方法。
我的工作流程基于this指南中的其他反应库,因此必须进行以下更改才能使其对我有用:
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的docs还提供了使用Vercel进行设置的说明,该似乎是类似于github页面的node.js应用程序的托管服务。不过我还没有尝试过,因此无法说明它的工作原理。
答案 3 :(得分:2)
否,您无法在Github页面上发布。试试Heroku或类似的东西。您只能在github页面上部署静态站点。您无法在github页面上部署服务器。
答案 4 :(得分:-11)
将节点js应用程序从本地推送到GitHub的步骤非常简单。
步骤:
git clone repo-url
git add -A
git commit -a -m "First Commit"
git push origin master