Gatsby

ដេប្លយកម្មវិធី Gatsby របស់អ្នក

Gatsby has been a static-site generator from the start, and gatsby build has written to the same public folder for years. Nothing unusual here — build it, deploy it.

steps
  1. 01

    Build the site

    Run "gatsby build" (or "npm run build", which calls the same thing). Gatsby pre-renders every page and writes optimized static output to "public".

  2. 02

    Skip develop mode

    "gatsby develop" starts a live-reloading dev server on its own port — it's not what produces deployable output. You want "build", not "develop".

  3. 03

    ដេប្លយវា

    ដំណើរការ "npx harvis deploy public" ពី root គម្រោងរបស់អ្នក។ មិនចាំបាច់ config និងមិនចាំបាច់ចូលសម្រាប់ deploy ដំបូងនេះទេ — អ្នកទទួលបាន URL ផ្ទាល់ភ្លាមៗ ព្រមទាំងតំណទាមទារឯកជនមួយ ដើម្បីភ្ជាប់គេហទំព័រទៅគណនីឥតគិតថ្លៃមួយនៅពេលណាដែលអ្នកត្រៀមខ្លួនរួចរាល់។

ដេប្លយ Gatsby ដោយពាក្យបញ្ជាតែមួយ

Build គម្រោងរបស់អ្នក រួចប្រគល់ថតលទ្ធផលទៅ harvis។ មិនចាំបាច់មានគណនីសម្រាប់ deploy ដំបូងទេ — អ្នកនឹងទទួលបានតំណភ្ជាប់ផ្ទាល់ និងតំណទាមទារឯកជនមួយ ដើម្បីគ្រប់គ្រងវានៅពេលក្រោយ។

terminal
gatsby build
npx harvis deploy public

ចង់អូសឯកសារជំនួសឱ្យប្រើ terminal មែនទេ? Build គម្រោង រួច ទម្លាក់ថតលទ្ធផលនៅទីនេះ ហើយផ្សព្វផ្សាយវាតាមរបៀបដដែល។

git hook

Deploy Gatsby on every git push

The command above is one you will run again after every change. A git hook runs it for you: this one already points at public, the folder Gatsby builds into.

The folder holding the finished site. "." is the repo root, which is right for hand-written HTML; a static-site generator writes somewhere else.

pre-push fires on every branch and every remote, so a feature branch would publish over your live site. With this on, a push from anywhere else exits early and goes through untouched.

in your repo root
cat > .git/hooks/pre-push <<'EOF'
#!/bin/sh
set -e
gatsby build
harvis deploy public
EOF
chmod +x .git/hooks/pre-push

The options, the gotchas and how to share a hook with your team are on the git hook page.

សំណួរអំពីការដេប្លយ Gatsby

My Gatsby site pulls data from a CMS. Does that still work after deploying?

Yes, as long as the data fetching happens at build time through Gatsby's GraphQL data layer, which is the normal Gatsby pattern. The page is already fully rendered with that data baked in by the time gatsby build finishes — nothing needs to run at request time.

Do Gatsby's dynamic routes and client-only paths work?

Pages generated via createPages at build time work fine — they're plain files in public. Client-only routes (Reach Router matchPath) render in the browser after the shell loads, and harvis's fallback to your entrypoint HTML handles the direct-visit case.

តើការដេប្លយកម្មវិធី Gatsby ទៅ harvis ឥតគិតថ្លៃពិតប្រាកដមែនទេ?

បាន មិនចាំបាច់ប្រើកាតទេ។ ដែនកំណត់ឥតគិតថ្លៃគឺឯកសារ ៥០០ និង ៥០ MB ក្នុងមួយគេហទំព័រ ដែលគ្រប់គ្រាន់សម្រាប់ build Gatsby static ដោយមានទំហំគ្រប់គ្រាន់។ គេហទំព័រដែលបានផ្សព្វផ្សាយមិនផុតកំណត់ទេ — ពួកវានៅតែដំណើរការរហូតដល់អ្នកលុបពួកវាចេញ។

តើខ្ញុំអាចប្រើ domain ផ្ទាល់ខ្លួនរបស់ខ្ញុំជាមួយគេហទំព័រ Gatsby ដែលបានដេប្លយបានទេ?

គេហទំព័រនីមួយៗទទួលបានអាសយដ្ឋាន harvis.page ឥតគិតថ្លៃមួយ ហើយអ្នកអាចជ្រើសរើស subdomain ផ្ទាល់ខ្លួនរបស់អ្នកពី dashboard បន្ទាប់ពីទាមទារវា — ដូចជា my-app.harvis.page ជំនួសឱ្យអាសយដ្ឋានចៃដន្យ។ ការចង្អុល domain ដែលអ្នកមានស្រាប់ (ដូចជា mystore.com) ទៅកាន់គេហទំព័រនេះមិនទាន់អាចធ្វើបានទេនៅឡើយ។

តើវាខុសពីការដេប្លយ Gatsby ទៅ Vercel ឬ Netlify យ៉ាងដូចម្តេច?

Vercel និង Netlify ត្រូវបានបង្កើតឡើងជុំវិញការភ្ជាប់ Git repo និងដំណើរការ build របស់អ្នកនៅលើ server របស់ពួកគេ ជាមួយ dashboard មួយសម្រាប់កំណត់រចនាសម្ព័ន្ធ។ harvis រំលងអ្វីៗទាំងនោះទាំងអស់៖ អ្នក build នៅមូលដ្ឋាន (ឬនៅក្នុង CI ផ្ទាល់ខ្លួនរបស់អ្នក) ដំណើរការពាក្យបញ្ជា CLI តែមួយប្រឆាំងនឹងថតលទ្ធផល រួចទទួលបានតំណភ្ជាប់មួយ — មិនចាំបាច់រៀបចំគម្រោង និងមិនចាំបាច់មានគណនីទេ រហូតដល់អ្នកចង់រក្សាគេហទំព័រនោះ។

other frameworks

កំពុងដេប្លយអ្វីផ្សេងទៀតមែនទេ?

រូបមន្តដូចគ្នាគ្រប់ទីកន្លែង — build វា រួច npx harvis deploy លទ្ធផល។