ฉันสร้างเว็บไซต์โดยใช้ Node.js เป็นเซิร์ฟเวอร์ ดังที่ฉันทราบไฟล์ node.js ควรเริ่มทำงานโดยพิมพ์คำสั่งในเทอร์มินัลดังนั้นฉันไม่แน่ใจว่า Github Pages รองรับ node.js-hosting หรือไม่ แล้วฉันควรทำอย่างไร?
ฉันสร้างเว็บไซต์โดยใช้ Node.js เป็นเซิร์ฟเวอร์ ดังที่ฉันทราบไฟล์ node.js ควรเริ่มทำงานโดยพิมพ์คำสั่งในเทอร์มินัลดังนั้นฉันไม่แน่ใจว่า Github Pages รองรับ node.js-hosting หรือไม่ แล้วฉันควรทำอย่างไร?
คำตอบ:
เพจ GitHub โฮสต์เฉพาะเพจ HTML แบบคงที่ ไม่รองรับเทคโนโลยีฝั่งเซิร์ฟเวอร์ดังนั้นแอปพลิเคชัน Node.js จะไม่ทำงานบนหน้า GitHub มีจำนวนมากของผู้ให้บริการโฮสติ้งตามที่ระบุไว้ในที่มีวิกิพีเดีย Node.js
แอพ Fog ดูเหมือนจะประหยัดที่สุดเนื่องจากให้โฮสติ้งฟรีสำหรับโปรเจ็กต์ที่มี RAM 2GB (ซึ่งค่อนข้างดีถ้าคุณถามฉัน)
ตามที่ระบุไว้ที่นี่ AppFog ได้ลบแผนบริการฟรีสำหรับผู้ใช้ใหม่
หากคุณต้องการโฮสต์เพจแบบคงที่บน GitHub ให้อ่านคู่มือนี้ หากคุณวางแผนที่จะใช้Jekyllแล้วคู่มือนี้จะเป็นประโยชน์มาก
พวกเราผู้ชื่นชอบ 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
และนี่คือบทแนะนำสุดเจ๋งที่มีรายละเอียดเกี่ยวกับสิ่งดีๆเช่นเลย์เอาต์บางส่วน Jade และ Less
ฉันสามารถตั้งค่าการดำเนินการ githubเพื่อคอมมิตผลลัพธ์ของคำสั่งการสร้างโหนดโดยอัตโนมัติ ( yarn build
ในกรณีของฉัน แต่มันควรทำงานกับ npm ด้วย) ไปยังgh-pages
สาขาเมื่อใดก็ตามที่มีการส่งคอมมิตใหม่ไปยังมาสเตอร์
แม้ว่าจะไม่เหมาะอย่างยิ่งเนื่องจากฉันต้องการหลีกเลี่ยงการคอมมิตไฟล์ที่สร้างขึ้น แต่ดูเหมือนว่านี่เป็นวิธีเดียวในการเผยแพร่ไปยังหน้า 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 ฉันไม่ได้ลองสิ่งนี้และไม่สามารถพูดได้ว่ามันทำงานได้ดีเพียงใด
เป็นขั้นตอนง่ายๆในการพุชแอปพลิเคชัน node js ของคุณจากโลคัลไปยัง GitHub
ขั้นตอน:
git clone repo-url
git add -A
git commit -a -m "First Commit"
git push origin master
grunt assemble
จากนั้นคอมไพล์คอมมิตและกดไปที่สาขา gh-pages จากนั้นคุณก็ออกและรัน