我使用Node.js作为服务器创建了一个网站。据我所知,node.js文件应该通过在终端中键入命令开始工作,因此我不确定Github Pages是否支持node.js托管。所以我该怎么做?
我使用Node.js作为服务器创建了一个网站。据我所知,node.js文件应该通过在终端中键入命令开始工作,因此我不确定Github Pages是否支持node.js托管。所以我该怎么做?
Answers:
GitHub页面仅托管静态HTML页面。不支持服务器端技术,因此Node.js应用程序不会在GitHub页面上运行。如Node.js Wiki上列出的,有很多托管服务提供商。
应用程序雾似乎是最经济的,因为它为具有2GB RAM的项目提供免费托管(如果您问我,这是相当不错的)。
如此处所述,AppFog删除了新用户的免费计划。
我们Javascript爱好者不必使用Ruby(Jekyll或Octopress)在Github页面中生成静态页面,我们可以使用Node.js和Harp,例如:
这些是步骤。抽象:
克隆存储库
git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
(本地)初始化Harp应用程序:
harp init _harp
确保在文件夹的开头加上下划线;部署到GitHub Pages时,您不希望提供源文件。
编译您的Harp应用
harp compile _harp ./
部署到Gihub
git add -A
git commit -a -m "First Harp + Pages commit"
git push origin master
而这是一个很酷的教程约不错的东西一样的布局,泛音,玉石和较少的细节。
我能够设置github操作以自动将节点构建命令的结果提交(yarn build
对于我而言,但它也应与npm一起使用)gh-pages
每当新的提交被推送到master时,分支。
虽然我不想避免提交生成的文件,这并不是完全理想的,但似乎这是当前发布到github页面的唯一方法。
我基于本指南的工作流使用了一个不同的React库,并且必须进行以下更改以使其对我有用:
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的说明,Vercel似乎是类似于github页面的node.js应用程序的托管服务。我还没有尝试过,因此无法说明它的工作原理。
将节点js应用程序从本地推送到GitHub的步骤非常简单。
脚步:
git clone repo-url
git add -A
git commit -a -m "First Commit"
git push origin master
grunt assemble
然后git commit并推送到gh-pages分支,然后就可以运行了。