Hice un sitio web usando Node.js como servidor. Como sé, el archivo node.js debería comenzar a funcionar escribiendo comandos en la terminal, por lo que no estoy seguro de si Github Pages es compatible con node.js-hosting. ¿Entonces qué debo hacer?
Hice un sitio web usando Node.js como servidor. Como sé, el archivo node.js debería comenzar a funcionar escribiendo comandos en la terminal, por lo que no estoy seguro de si Github Pages es compatible con node.js-hosting. ¿Entonces qué debo hacer?
Respuestas:
Las páginas de GitHub alojan solo páginas HTML estáticas. No se admite ninguna tecnología del lado del servidor, por lo que las aplicaciones Node.js no se ejecutarán en las páginas de GitHub. Hay un montón de proveedores de alojamiento, que se enumeran en el wiki Node.js .
App fog parece ser la más económica, ya que proporciona alojamiento gratuito para proyectos con 2GB de RAM (lo cual es bastante bueno si me preguntas).
Como se indica aquí , AppFog eliminó su plan gratuito para nuevos usuarios.
Si desea alojar páginas estáticas en GitHub, lea esta guía . Si planeas usar Jekyll , esta guía será muy útil.
Nosotros, los amantes de Javascript, no tenemos que usar Ruby (Jekyll u Octopress) para generar páginas estáticas en páginas Github, podemos usar Node.js y Harp , por ejemplo:
Estos son los pasos . Resumen:
Clonar el repositorio
git clone https://github.com/your-github-user-name/your-github-user-name.github.io.git
Inicialice una aplicación Harp (localmente):
harp init _harp
asegúrese de nombrar la carpeta con un guión bajo al principio; Cuando implementas en Páginas de GitHub, no quieres que se sirvan tus archivos de origen.
Compila tu aplicación Harp
harp compile _harp ./
Implementar en Gihub
git add -A
git commit -a -m "First Harp + Pages commit"
git push origin master
Y este es un tutorial genial con detalles sobre cosas agradables como diseños, parciales, Jade y Less.
Pude configurar acciones de github para enviar automáticamente los resultados de un comando de compilación de nodo ( yarn build
en mi caso, pero también debería funcionar con npm) en la gh-pages
rama cada vez que se envía una nueva confirmación al maestro.
Si bien no es completamente ideal, ya que me gustaría evitar comprometer los archivos compilados, parece que esta es actualmente la única forma de publicar en páginas de github.
Basé mi flujo de trabajo en esta guía para una biblioteca de reacciones diferente y tuve que hacer los siguientes cambios para que funcionara para mí:
yarn export
porque ese comando no existe y no parece agregar nada útil (es posible que también desee cambiar la línea de compilación que se encuentra arriba para satisfacer sus necesidades)env
directiva al yarn build
paso para poder incluir el hash SHA del compromiso que generó la compilación dentro de mi aplicación, pero esto es opcionalAquí está mi acción completa de 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
Los documentos de next.js también proporcionan instrucciones para configurar con Vercel, que parece ser un servicio de alojamiento para aplicaciones de node.js similar a las páginas de github. Sin embargo, no he probado esto y, por lo tanto, no puedo hablar de lo bien que funciona.
Son pasos muy simples para impulsar su aplicación de nodo js de local a GitHub.
Pasos:
git clone repo-url
git add -A
git commit -a -m "First Commit"
git push origin master
grunt assemble
luego git commit y presione a la rama gh-pages y estará listo y funcionando.