Az első Jamstack alkalmazás elkészítése a Hugo és a Netlify segítségével

Az internetes építés mindig izgalmas lehetőség. Lehetővé teszi a fejlesztők számára a webalkalmazások készítésének útját. Kiválaszthatják a használni kívánt keretrendszert, technológiát, eszközöket és filozófiát.

Az egyik ilyen filozófia a Jamstack. Rugalmas megközelítést kínál a webfejlesztési probléma megoldására.

Ebből a cikkből megtudhatja, hogyan készítheti el első Jamstack alkalmazását. Kezdjük el.

Mi az a Jamstack?

A Jamstack egyike az új webfilozófiáknak, amelyek az internetre való építkezésre szolgálnak. Technikailag komponálható webarchitektúrát kínál a fejlesztőknek. Kiválaszthatja kereteit és eszközeit ugyanazon cél eléréséhez.

Ha alaposan megnézed,

Jam + verem = JAMstack.

A Jamstack három fő összetevőből áll:

  • J a JavaScripthez
  • A for Application Programming Interface (API)
  • M: Markup

Ez a megközelítés elválasztja az üzleti logikát az adatoktól, leválasztva a webes élményréteget. Az előnyök közé tartozik:

  • Gyorsabb betöltési idő (majdnem azonnali).
  • Rugalmas és gyors fejlesztési munkafolyamat.
  • Továbbfejlesztett méretezhetőség és karbantarthatóság.

Ha többet szeretne megtudni a Jamstackről, nézze meg a Jamstack for Newbies oldalt.

A Jamstack története

A Jamstack viszonylag új. 2016-ban Matt Biilmann bemutatta a Jamstack-et a cég prezentációjában, bemutatva a világnak, hogyan lehet weboldalt készíteni anélkül, hogy a hagyományos úton haladnánk.

A megoldás elválasztja az alkalmazáslogikát a háttérkiszolgáló-függőségtől. Így a legtöbb tartalom CDN-ekkel ellátott statikus fájlok révén kerül kiszolgálásra – a dinamikus funkciók támogatottak és API-kon keresztül érhetők el. És ha bármilyen dinamikus műveletet fel kell dolgoznia a kiszolgálónak, akkor a rendszer lefordítja és továbbítja a CDN-ekhez, mielőtt a végfelhasználó hozzáférne.

A Jamstack történetének jobb megértéséhez meg kell vizsgálnunk a statikus és dinamikus webhelyeket.

  • Statikus webhely: A statikus webhely a szerveren található, de nincsenek dinamikus vonatkozásai. Az internet kezdeti korszakában a legtöbb webhely statikus webhely volt, amely HTML-t, CSS-t és egy szerveren tárolt képeket szolgált ki. A megközelítés gyors, mivel a szervernek nem kell időt töltenie a felhasználó kérésének feldolgozásával, és a fájlok mindig készen állnak. Azonban ha nincs lehetőség bármin megváltoztatni, az nem vezet interaktivitáshoz.
  • Dinamikus webhely: A dinamikus webhelyek interaktivitást kínálnak azáltal, hogy feldolgozzák a felhasználók kéréseit, és létrehozzák a megjelenítéshez szükséges HTML-kódot. A megközelítés lassú, de hozzáadja az interaktivitás előnyeit. A legtöbb modern webhely dinamikus webhely. A legjobb példa erre a WordPress-alapú webhelyek.

És akkor vannak Jamstack webhelyeink. Tanuljuk meg, hogyan oldotta meg mind a statikus, mind a dinamikus oldalak problémáját.

Jamstack webhelyek: hogyan működnek?

A Jamstack két alapvető problémát old meg:

  • A dinamikus webhely lassú betöltési ideje
  • Statikus oldalak interaktivitása

A Jamstack webhely statikus fájlokat szolgál ki, ami gyors. De tartalmaz JavaScriptet is, amely interakcióba léphet az API-kkal a dinamikus tartalom kiszolgálása érdekében.

A színfalak mögött statikus webhelygenerátorra lesz szüksége a statikus weboldalak létrehozásának nehéz feladatainak elvégzéséhez.

Ezek a statikus webhely-generátorok a Markdownt használják statikus webhelyek kiszolgálására. A statikus webhelygenerátor statikus fájlokat állít elő a rendelkezésre álló HTML-, CSS- és JavaScript-fájlokból. Miután kifejlesztették, a statikus webhelyet CDN-eken keresztül szolgálják ki.

A statikus fájlok kiszolgálása során a webhelyek szinte azonnal betöltődnek. Ahhoz azonban, hogy dinamikus aspektust adjon a webhelyhez, JavaScriptre kell hagyatkoznia. A JavaScript-fájlok kapcsolódhatnak API-khoz, és dinamikus adatokat adhatnak hozzá egy adatbázissal kommunikálva.

Az első Jamstack webhely készítése

Mivel a Jamtack szabadságot kínál, bármelyik Jamstack keretrendszert/statikus webhelygenerátort választhatja, beleértve a Hugo-t, a Gatsby-t, a Next.js-t, a Hexót és másokat.

  Próbálja ki 9 Wordle-alternatívát játszani a következő rejtvénykihívásként

Olvassa el még: A JamStack legjobb keretei

A telepítéshez pedig telepítheti a GitHub Pages, a Netlify, az Azure Static Web Apps és más alkalmazásokba.

Ebben az oktatóanyagban a Hugo-t használjuk a Jamstack fejlesztéséhez, és a Netlify-t használjuk webhelyünk tárolására.

Az oktatóanyag feltételezi, hogy rendelkezik alapvető ismeretekkel az internetről. Tudnia kell, hogyan működik a web. Ezenkívül tudnia kell a Git használatát is.

Kezdjük el.

#1. Előfeltételek telepítése: Go and Git

A Hugo telepítéséhez két dologra van szükség: Git and Go. Szükségünk van a Gitre, hogy egyszerűsítse az összeállítási munkafolyamatunkat (ezt később látni fogja a Netlify-nál). Go szükséges, mivel a Hugo erre épül.

WSL 2-n futó Ubuntut használunk Windows 11 rendszeren. Az Ubuntu kernelt közvetlenül a Windows rendszerből érjük el.

Olvassa el még: A Windows 11 találkozik a Linuxszal: A WSL2 képességeinek mélysége

Választhat operációs rendszert, Windowst, Linuxot vagy Macet.

A Git telepítése

Az Ubuntuban a következő parancs futtatásával telepítheti a Git-et.

$ sudo apt update

$ sudo apt install git

Windows esetén le kell töltenie a Windows bináris telepítőit. Tekintse meg teljes Git telepítési útmutatónkat.

A Git helyes telepítésének ellenőrzéséhez írja be a következő parancsot.

[email protected]:~$ git --version

git version 2.34.1

A Go telepítése

Itt az ideje a Golang telepítésének. Ehhez le kell futtatnia néhány parancsot Linuxon. Tehát tegyük lépésenként.

1. lépés: Távolítsa el az előző Go-telepítést, és hozzon létre egy helyi Go-fát.

$ rm -rf /usr/local/go && tar -C /usr/local -xzf go1.20.4.linux-amd64.tar.gz

2. lépés: A PATH környezeti változó testreszabása

export PATH=$PATH:/usr/local/go/bi

3. lépés: Végül ellenőrizze, hogy a Golang megfelelően van-e telepítve.

$ go version.

#output
go version go1.18.1 linux/amd64

Szuper, most már készen állunk a Hugo telepítésére!

Hugo telepítése

Attól függően, hogy a Homebrew-t vagy a Chocolately-t használja, a következő parancsok egyikét kell használnia.

Homebrew esetében:

$ brew install hugo

Csokoládéhoz:

$ brew install hugo -confirm

És ha egyiket sem használja, akkor közvetlenül a forrásból telepítheti őket.

$ mkdir $HOME/src

cd $HOME/src

git clone https://github.com/gohugoio/hugo.git

cd hugo

go install  --tags extended

A Hugo sikeres telepítésének ellenőrzéséhez futtassa a következő parancsot.

$ hugo -version
Start building sites …
hugo v0.92.2+extended linux/amd64 BuildDate=2023-01-31T11:11:57Z VendorInfo=ubuntu:0.92.2-1ubuntu0.1
INFO 2023/05/05 12:20:38 syncing static files to /home/nitt/etoppc.com/public/

                   | EN
-------------------+-----
  Pages            | 35
  Paginator pages  |  0
  Non-page files   |  0
  Static files     | 23
  Processed images |  0
  Aliases          |  0
  Sitemaps         |  1
  Cleaned          |  0

Total in 117 ms

#2. Hugo webhely létrehozása

A Hugo egy egyszerű módot kínál a webhely létrehozására. Ehhez futtassa a következő parancsot.

$ hugo new site etoppc.com-jamstack
Congratulations! Your new Hugo site is created in /home/nitt/etoppc.com-jamstack.

Just a few more steps and you're ready to go:

1. Download a theme into the same-named folder.
   Choose a theme from https://themes.gohugo.io/ or
   create your own with the "hugo new theme <THEMENAME>" command.
2. Perhaps you want to add some content. You can add single files
   with "hugo new <SECTIONNAME>/<FILENAME>.<FORMAT>".
3. Start the built-in live server via "hugo server".

Visit https://gohugo.io/ for quickstart guide and full documentation.

#3. Hugo-téma kiválasztása

A Hugo rengeteg témához kínál hozzáférést. Ezek a témák kiindulópontot adnak a projekthez. És ahhoz, hogy Hugoval Jamstack webhelyet hozzon létre, szüksége van egy témára.

#4. Kisvállalkozási webhely létrehozása Jamstack segítségével

Az oktatóanyaghoz a Hugo Hero témát fogjuk használni. Ez a többcélú téma olyan funkciókat kínál, mint a teljes szélességű szakaszok és portfóliókészítés a Markdown segítségével.

A téma telepítéséhez másolja ki a repo hivatkozását, és klónozza azt. Mielőtt folytatná, győződjön meg arról, hogy a gyökérkönyvtárban van.

git clone https://github.com/zerostaticthemes/hugo-hero-theme.git themes/hugo-hero-theme
#output

Cloning into 'themes/hugo-hero-theme'...

remote: Enumerating objects: 1141, done.

remote: Total 1141 (delta 0), reused 0 (delta 0), pack-reused 1141

Receiving objects: 100% (1141/1141), 28.17 MiB | 58.00 KiB/s, done.

Resolving deltas: 100% (489/489), done.

Az alapértelmezett tartalom másolása

Az alapértelmezett tartalom használatához a webhelyen futtassa a következő parancsot.

$ cp -a themes/hugo-hero-theme/exampleSite/. .

Az exampleSite mappa tartalmát a webhely gyökérkönyvtárába másolja.

  ISO-fájl létrehozása, csatlakoztatása és írása Linuxban

Config.toml fájl frissítése

Ezután szerkesztenünk kell a Config.toml fájlt. Tárolja a projekt konfigurációs adatait, és ezeket megfelelően be kell állítani ahhoz, hogy a Jamstack webhely működjön.

Egyelőre szerkesztenie kell hozzá a következő sort.

baseURL = "/"

themesDir = "themes"

theme = "hugo-hero-theme"

Megjegyzés: A projekt előrehaladtával folyamatosan frissítenie kell a Config.toml fájlt. Továbbá, ahogy az alapértelmezett tartalmat használta, a Config.toml is frissül, hogy megfeleljen a példatartalomnak.

Jamstack webhelyünk tesztelése

Oldalunk futtatásához újra elő kell generálnunk a Hugo oldalt a hugo paranccsal.

$ hugo

Ezután felpörgetjük a szervert. Ehhez futtassa a hugo serve parancsot.

$ hugo serve
#output

[email protected]:~/etoppc.com$ hugo server

port 1313 already in use, attempting to use an available port

Start building sites …

hugo v0.92.2+extended linux/amd64 BuildDate=2023-01-31T11:11:57Z VendorInfo=ubuntu:0.92.2-1ubuntu0.1

                   | EN

-------------------+-----

  Pages            | 35

  Paginator pages  |  0

  Non-page files   |  0

  Static files     | 23

  Processed images |  0

  Aliases          |  0

  Sitemaps         |  1

  Cleaned          |  0

Built in 71 ms

Watching for changes in /home/nitt/etoppc.com/{archetypes,content,data,layouts,static,themes}

Watching for config changes in /home/nitt/etoppc.com/config.toml

Environment: "development"

Serving pages from memory

Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender

Web Server is available at //localhost:42229/ (bind address 127.0.0.1)

Press Ctrl+C to stop

Megjegyzés: Webhelye mostantól a 127.0.0.1 címen érhető el. Ha valamilyen okból nem nyílik meg, próbálja meg megnyitni a mellette megadott alternatív címet. Ebben az esetben a localhost:42973

Témák alapértelmezett tartalom szerkesztése

Innentől szabadon szerkesztheti az alapértelmezett tartalmat. Ezt a Tartalom mappába lépve teheti meg. Szerkesszük az indexoldal tartalmát. Ehhez lépjen a Tartalom > Munka > Index.md oldalra

Így néz ki szerkesztés után.

Blogoldal készítése

Ha csak blogot szeretne létrehozni, megfelelő témát kell választania. Erre a célra használjuk a Hyde témát.

Hasonlóan az új webhelyünk beállításához, a következő parancsokat kell futtatnia.

$ hugo new site etoppc.com-jamstack

$ cd etoppc.com-jamstack/themes

$ git clone https://github.com/spf13/hyde /themes/hyde

Ezután szerkessze a Config.toml fájlt a theme = ‘hyde’ érték hozzáadásához.

Hozzon létre egy új bejegyzést

Új bejegyzés létrehozásához futtassa a hugo new parancsot, majd a Markdown fájlt.

$ hugo new hellogeekflare.md
#output

[email protected]:~/geefklare-jamstack$ hugo new hellogeekflare.md

Content "/home/nitt/geefklare-jamstack/content/hellogeekflare.md" created

[email protected]:~/geefklare-jamstack$

A bejegyzés szerkesztése

Az újonnan létrehozott hellogeefklare.md bejegyzés szerkesztéséhez nyissa meg a hellogeekflare.md fájlt a kívánt szövegszerkesztőben.

A következő tartalmat jeleníti meg.

---

title: "Hello etoppc.com"

date: 2023-05-04T11:39:10+05:30

draft: true

---

Itt bármilyen tartalmat hozzáadhat a Markdownhoz.

Adjuk hozzá a következő tartalmat a Markdown-ban.

### Hello, World!

This is a new post created to show how easy it is to create **Jamstack website**. 
We’re using Hugo and Netlify to create our *basic Jamstack site*.

Miután behelyezte a fenti tartalmat az .md fájlba, annak az alábbiak szerint kell kinéznie (a szerkesztőtől függően Visual Studio Code-ot használunk).

Azonban teljesen másképp fog kinézni, amikor felszolgáljuk.

Megjegyzés: Ügyeljen arra, hogy a piszkozat értéket „true”-ról „false”-ra módosítsa.

Fantasztikus! Létrehoztunk két Jamstack webhelyet, egy kisvállalkozási webhelyet és egy másik blogot.

A webhely szerkesztése után a hugo parancs futtatásával generálhatja a fájlokat. Létrehozza a fájlt, és a /public mappába helyezi.

$ hugo

#5. A Jamstack webhely telepítése a Netlify-ba

Miután létrehoztuk a webhely(eke)t, telepítsük őket. Erre a célra a Netlify-t fogjuk használni.

A Netlify egy CDN által támogatott szolgáltatás, amely az Önhöz hasonló felhasználóknak gyors webhelyek tárolását kínálja. Csatlakoztathatja a Netlify-t a Githubhoz, és automatizálhatja a folyamatot. Ez egy ingyenes szolgáltatás, néhány funkcióval a fizetőfal mögött.

  Filmek és TV-műsorok letöltése offline megtekintéshez a Netflixen

A mi feladatunk az, hogy a kódot továbbítsuk a Netlify-nak, és hagyjuk, hogy a Netlify mindent elintézzen helyettünk.

A Git Repository helyi beállítása

Itt az ideje, hogy beállítsuk a Git adattárat.

A Git-tárház elindításához futtassa a következő parancsot a projekt gyökerében.

$ git init

Ezután a témát almodulként kell beállítanunk. Ez egy fontos lépés. Technikailag allerakatokat hoz létre a lerakaton belül. (Emlékszel, csináltál egy git klónt a Hugo témához?). Így jobban irányíthatja Jamstack webhelyét.

Például letölthet frissítéseket a témához. Ezt is meg kell tennie, mert a Netlify-nak szüksége van a témákra almodulként a tárolásukhoz.

Tehát a téma almodulként való hozzáadásához futtassa a következő parancsot.

$ git rim --cached themes/hyde

$ git submodule add https://github.com/spf13/hyde themes/hyde
#output

[email protected]:~/etoppc.com-jamstack$ git submodule add https://github.com/spf13/hyde themes/hyde

Adding existing repo at 'themes/hyde' to the index

[email protected]:~/etoppc.com-jamstack$

Repository létrehozása a GitHubon

A helyi beállítás befejezése után ideje létrehozni egy új GitHub-tárolót.

Miután létrehozta, hozzá kell adnia az eredetet a helyi tárolóhoz.

$ git remote add origin https://github.com/logan99/etoppc.com-jamstack-tutorial.git

Most húzd meg.

$ git branch -M main

$ git pull origin main

Hozzon létre egy új commit

Most itt az ideje új commit létrehozásának. Futtassa a következő parancsot az összes fájl hozzáadásához a fő ághoz.

$  git add .

Most futtassa a commit parancsot a változtatások véglegesítéséhez.

$ git commit -m “First commit”
#Output

[email protected]:~/etoppc.com-jamstack$ git commit -m "First commit"

[main (root-commit) fa69ab2] First commit

 21 files changed, 1135 insertions(+)

 create mode 100644 .gitmodules

 create mode 100644 .hugo_build.lock

 create mode 100644 archetypes/default.md

 create mode 100644 config.toml

 create mode 100644 content/hellogeekflare.md

 create mode 100644 public/404.html

 create mode 100644 public/apple-touch-icon-144-precomposed.png

 create mode 100644 public/categories/index.html

 create mode 100644 public/categories/index.xml

 create mode 100644 public/css/hyde.css

 create mode 100644 public/css/poole.css

 create mode 100644 public/css/print.css

 create mode 100644 public/css/syntax.css

 create mode 100644 public/favicon.png

 create mode 100644 public/hellogeekflare/index.html

 create mode 100644 public/index.html

 create mode 100644 public/index.xml

 create mode 100644 public/sitemap.xml

 create mode 100644 public/tags/index.html

 create mode 100644 public/tags/index.xml

 create mode 160000 themes/hyde

Végül helyezze át a módosításokat a GitHubba.

$ git push --set-upstream origin main

Megjegyzés: A működéshez meg kell adnia GitHub felhasználónevét és jelszavát.

#6. Munka a Netlify-val

Kiváló, a tárhelyünk elkészült. Most áttérünk a Netlify-ra. Ha már van fiókja, jelentkezzen be, vagy hozzon létre új fiókot.

Újabb fiókok esetén azonnal lefuttat egy varázslót. Ellenkező esetben a fiókja irányítópultjára kerül. Ha az irányítópultra érkezik, kattintson az „Új webhely hozzáadása” lehetőségre a Webhelyek alatt.

Az Új webhely hozzáadása alatt válassza a „Meglévő projekt importálása” lehetőséget.

Ezután megkéri, hogy válasszon Git-szolgáltatót. Mivel GitHubot használunk, azt választjuk. Választhat a Bitbucket, a GitLab és az Azure DevOps mellett is.

Ezután felsorolja az összes projektjét. Innen válassza ki a projekthez létrehozott GitHub-tárat. Számunkra ez a „etoppc.com-jamstack-oktatóanyag”. Dönthet úgy is, hogy feltölti a másik általunk létrehozott projektet.

Ezután a rendszer megkéri, hogy válassza ki a telepíteni kívánt ágat, és válassza ki az alapvető összeállítási beállításokat. Egyelőre mindent alapértelmezettre állíthat.

Kattintson a „Depoy Site” elemre a telepítéshez.

Most meg kell várnia, amíg a Netlify elvégzi a dolgát. Az üzembe helyezés után a következő üzenet jelenik meg: „A webhely telepítve van”.

Most kattintson a webhelyre a bal felső sarokban.

Azonban észre fogja venni, hogy a webhely nem töltődik be megfelelően. Ennek az az oka, hogy a Config.toml fájl alap URL-címe nincs megfelelően beállítva. Mivel a Netlify új projekt URL-t hozott létre, hozzá kell adnia a Config.toml fájlhoz.

Esetünkben az oldal a https://animated-beijinho-2baa8b.netlify.app/ címen található

Ez azt jelenti, hogy hozzá kell adnunk a baseURL-t.

Ehhez lépjen a helyi beállításhoz, és módosítsa az értéket.

baseURL = 'https://animated-beijinho-2baa8b.netlify.app/'

languageCode="en-us"

title="My new Jamstack site"

theme="hyde"

A módosítás leküldéséhez a következő parancsot kell futtatnia.

$ git add .

$ git commit -m “changed baseURL to make it work on Netlify”

A Netlify okos. Amikor új véglegesítést észlel, automatikusan újratelepíti a webhelyet.

Ha most betölti webhelyét, akkor az tökéletesen be fog tölteni.

Wooo! Megtetted. Tudom, hogy sokat kell tanulni. Azonban az egész folyamatot intuitívnak fogja találni, ha néhányszor megteszi.

Végső szavak

A Jamstack beindította a fejlesztők új korszakát. Felszabadítja a teljesítményt, és javítja a webhelyek telepítését is. A Jamstack olyan kiváló ökoszisztéma-tagokkal bővült, mint a Hugo és a Netlify. Kétségtelen, hogy innen csak nőni fog.

Ezután nézze meg, hogyan telepítheti az előtér-alkalmazást a Netlify-ba.