Deno – moodne Node. Lume – staatilise lehe generaator Deno'le
Astro on tore, ent on muidki lahendusi.
Deno ja Lume
Deno on moodsa JavaScripti ja TypeScripti käituse keskkond, mille on loonud Ryan Dahl, Node.js looja. See on loodud eesmärgiga parandada Node.js-i mõningaid puudusi.
Deno pakub mitmeid olulisi omadusi:
- Turvalisus: Deno on vaikimisi turvaline. Skriptidel pole juurdepääsu failisüsteemile, võrgule või muudele ressurssidele, kui selleks pole antud selgesõnalist luba.
- TypeScripti Tugi: Deno toetab TypeScripti otsekarbil, ilma et oleks vaja eraldi tõlkida.
- Moodulite Importimine URL-ide Kaudu: Deno võimaldab importida mooduleid otse URL-idelt, mis kaotab vajaduse eraldi paketihaldurite järele.
- Standardraamatukogu: Deno sisaldab laia standardraamatukogu, mis on kirjutatud TypeScriptis ja on hoolikalt läbi mõeldud ja üle vaadatud.
- Kaasaegne API: Deno API on lubadustel põhinev (promises) ja kasutab moodsaid JavaScripti võimalusi, nagu async/await, et parandada asünkroonse koodi kirjutamist.
Lume
Mis on lume? Lume on staatiliste lhtede generaator Deno’le.
Deno ja Lume setup
Deno install on lihtne, juhend leitav tema kodulehelt: https://docs.deno.com/runtime/manual/getting_started/installation
Lume vajab muidugi pisut enam seadistamist, kuid on ülesehituselt lollakalt lihtne – lehe valmistamiseks tuleb Lume lihtsalt installida ja kirjutada nt Markdown fail, kõik muu teeb juba süsteem vaikimisi. Muidugi tuleb keerulisema lehe puhul korrastada süsteem ja näidata kus asuvad algfailid jne.
Niisiis, installimiseks jälgi ametlikku juhendit või kasuta siinset. Loo projektifolder ja jooksuta selles käsklust:
deno run -Ar https://deno.land/x/lume/init.ts
Selle tagajärjel genereeritakse projektifolderisse kaks faili – _config.ts ja
deno.jsonInstallides küsitakse, mis pluginaid soovid installida, kuid võib piirduda minimaalsega – pluginate lisamine on lihtne, tuleb vaid
_config.ts`faili lisada mõned read.
_config.ts
ilma pluginateta:
import lume from "lume/mod.ts";
const site = lume();
export default site;
Sama kui installimisel on lisatud attributes
plugin:
import lume from "lume/mod.ts";
import attributes from "lume/plugins/attributes.ts";
const site = lume();
site.use(attributes());
export default site;
deno.json
jääb mõlemal juhul samasuguseks:
{
"tasks": {
"lume": "echo \"import 'lume/cli.ts'\" | deno run --unstable -A -",
"build": "deno task lume",
"serve": "deno task lume -s"
},
"compilerOptions": {
"types": [
"lume/types.ts"
]
},
"imports": {
"lume/": "https://deno.land/x/[email protected]/"
}
}
Ja sellega juba süsteem töötabki – lisa projekti juurkataloogi markdown fail, jooksuta terminalis käsklust deno task lume --serve --port=8000
ja näedki tulemust. deno task lume
loob staatiliste failide kataloogi _site
, --serve
paneb süsteemi muudatusi jälgima ja --port=8000
on muidugi pordi number, kust tulemust näed. Ehk, et vaata brauseris localhost:8000
Vaikimisi port on 3000
Selgitused Lume lehel: https://lume.land/docs/overview/command-line/