„Cake“ naudojimas „CoffeeScript“

Turinys
CoffeeScript yra kalba, leidžianti mums parašyti geresnį „JavaScript“ kodą, kuris suvienija jį ir sudaro tą pačią struktūrą, kur būsime tikri, kad sukurtas „JavaScript“ kodas CoffeeScript kitas kūrėjas bus identiškas mūsų.
Tačiau tai dar ne viskas, ką siūlo CoffeeScriptBe to, jis turi įrankį, vadinamą Tortas, panaši į „Grunt“, kuri leidžia mums apibrėžti paprastas užduotis, padedančias mums įgyvendinti mūsų projektus, nes gali būti, kad mums reikia užduoties, kad galėtume atlikti testus, arba tiesiog užduoties, kad galėtume sukurti failus, ir mes galime tai padaryti naudodami Tortas per failą, pavadintą Torto failas.
ReikalavimaiNorėdami užbaigti šią pamoką, turime turėti funkcinį diegimą CoffeeScript, mums taip pat reikia leidimų rašyti failus ir vykdyti CoffeeScript kompiuteryje, kuriame darome pamoką. Mums reikia tokio teksto redaktoriaus Aukščiausias tekstas kad galėtume parašyti mūsų pavyzdžių kodą ir niekada neskauda pažvelgti į ankstesnes kalbos pamokas.
Prieš pradedant svarbu paminėti, kad mums nereikia diegti Tortas, mūsų pradinio diegimo metu CoffeeScript įrankis yra sumontuotas taip pat, todėl mums nereikia nieko papildomai daryti, kad pradėtume dirbti su juo.
Tai žinodami galime pradėti dirbti Tortas, tačiau turime suprasti, kad visos mūsų sukurtos užduotys turi būti faile, pavadintame Torto failas, kurios pavadinimas turi būti lygiai toks pat pyrago failas tai bus visiškai kitoks failas ir kompiliatorius jo neatpažins.
Šis failas turi būti mūsų projekto pagrindas ir labai svarbu, kad jo turinys būtų tik kodas CoffeeScript. Išsiaiškinę tai, pažiūrėkime, kaip sukurti pirmąją užduotį Tortas.
Mes sukursime aplanką pavadinimu pyrago_failas_pavyzdys ir ten mes sukursime failą pavadinimu Torto failas.kava ir jame bus toks turinys:
 užduotis „pasveikinimas“, „Pasveikinkime didžiąją solvetų bendruomenę“, -> console.log „Labas, pasauli!“
Prieš paaiškindami savo kodą, mes jį sudarysime ir pamatysime „JavaScript“ sukurtą turinį, tai nėra būtina, nes mes niekada nematysime šio kodo, tačiau šį kartą galėtume jį naudoti, kad geriau suprastume, ką jis daro CoffeeScript, pažiūrėkime išvestį:

DIDELIS

Kadangi mes esame kontekste, mes galime paaiškinti savo kodą, pirmiausia mes nustatome užduotį naudodami funkciją užduotis kuris automatiškai pridedamas prie kiekvieno failo Torto failas. Pirmasis funkcijos argumentas yra užduoties pavadinimas, šiuo atveju jis yra sveikinimas ir mes jį naudosime komandų pulte užduočiai vykdyti, antrasis argumentas gali būti neprivalomas ir yra užduoties aprašymas, kuris bus rodomas mūsų galimų užduočių sąraše. Paskutinis argumentas, kurį siunčiame funkcijoje užduotis tai dar viena funkcija, kurią atliks užduotis ir kur bus saugoma dauguma mūsų logikos.
Ankstesnis pavyzdys buvo tik patikrinti, ką kompiliatorius daro, bet mūsų failas Torto failas jis neturi turėti jokio pratęsimo. Mes taip pat galime pamatyti, kokias užduotis turime su komanda tortas Komandų konsolėje pažiūrėkime, kaip tai atrodo:

Kaip matome, matome savo užduoties pavadinimą ir aprašymą. Dabar, norėdami atlikti tam tikrą užduotį, naudojame komandą tortas, po kurios eina užduoties pavadinimas, norėdami užbaigti, pažiūrėkime konsolės išvestį:

Mes jau žinome, kaip sukurti užduotį ir ją vykdyti, bet kas, jei norime jai pateikti tam tikrų argumentų? Pavyzdžiui, ką daryti, jei norime, kad mūsų sveikinimas būtų visiškai suasmenintas pagal mūsų siunčiamą vertę? Tai padaryti yra gana paprasta, pažiūrėkime.
Pirmas dalykas, kurį turime padaryti atlikdami užduotį, yra apibrėžti parinktį, tai darome su funkcija variantas galima Tortas. Ši funkcija apima tris argumentus, pirmasis yra trumpa pasirinkimo forma, antrasis yra ilgas, o paskutinis yra aprašymas, ką pasirinkimas daro, o tai yra svarbu, jei mes vystomės kaip komanda ir norime dokumentuoti savo užduotis. Tada atliksime savo užduoties pakeitimus, kad apibrėžtume parinktį:
 variantas '-n', '--vardas [VARDAS]', 'vardas pasveikinti' užduotis "sveikinimas", "Mes kam nors sveikiname", (parinktys)-> message = "Sveiki", jei parinktys.pavadinimas? pranešimas + = parinktys.pavadinimas kitas pranešimas + = "Pasaulis" console.log pranešimas
Kaip matome prieš apibrėžimą užduotis mes turime savo funkciją variantas, po kurio eina trumpa forma, kuri būtų -n, tada turime ilgą formą, kuri būtų -name, nurodydama, kad ji tikėsis vertės ir galiausiai aprašymas. Mes vykdysime pyrago komandą ir pamatysime išvestį mūsų konsolėje:

Kaip matome, mes turime savo užduoties pavadinimą, aprašymą, o po juo - galimos jos parinktys, trumpos ir ilgos parinktys bei aprašymas. Vykdykime savo užduotį naudodami trumpą parinktį ir pamatysime konsolės išvestį:

Norint atlikti užduotį naudojant parinktis, svarbu pirmiausia nurodyti argumentus, o tada užduoties pavadinimą, nes jei nepateksime į klaidą, tai daug nepasakys apie tai, kas gali nutikti su mūsų „Cakefile“ failu, tada pažiūrėkime, kaip vykdymas naudoja antrąją parinktį:

Čia vyksta kažkas keisto, ir tai yra tai, kad prieš atlikdami užduotį mes naudojame parinktį su vienu scenarijumi, pateikdami mums klaidą ir tai yra teisingas dalykas, nes savo užduotyje mes nustatėme parinktį kaip --- vardas, o ne -pavadinimas, taip parodydamas jo veiksmingumą CoffeeScript užduočių vykdymui.
Be to, mes galime apibrėžti, ar reikia parinkties, ir tai darome apibrėždami užduotį, tikrindami, ar vertė egzistuoja, ir jei nemetame klaidos, pažiūrėkime, kaip atrodo šis kodas:
 parinktis „-n“, „-vardas [PAVADINIMAS]“, „vardas, kurį norite pasveikinti“ užduotis „sveikinimas“, „Patikrinkite, ar ši parinktis egzistuoja“, (parinktys)-> išmesti naują klaidą („[VARDAS] yra Reikalinga vertė "), nebent parinktys.pavadinimas? console.log "Sveiki, # {options.name}"
Tada vykdykime savo užduotį, bet šį kartą ignoruodami šią parinktį kaip argumentą ir pamatę konsolės atsakymą:

Kaip matome, buvo parodyta klaida, kurią įtraukėme į failą, todėl galėjome patvirtinti, kad mūsų užduočių parinktys prireikus perduodamos kaip argumentai.
Jau matę, kaip sukurti savo užduotis ir apibrėžti jų parinktis, svarbu pamatyti, kaip galime atlikti užduotis, kurios randamos kitose. Pavyzdžiui, mes galime turėti dvi bendras užduotis projekte, kai viena iš užduočių yra skirta išvalyti katalogus, kuriuos sukūrėme projektui, o kita - už surinkimą ir kūrimą, pažiūrėkime, kaip šios dvi užduotys ką tik baigėme atrodyti taip: aprašykite:
 užduotis "išvalyti", "Ši užduotis atlieka katalogų valymą", -> console.log "valyti dir …" užduotis "build", "Sukurti ir sudaryti projekto failus", -> console.log "pastatas …"
Mes vykdysime komandą tortas ir pažiūrėkime atsakymą per konsolę:

Be to, norėdami vykdyti abi užduotis kartu, galime naudoti komandą tortas, po kurios eina abu mūsų užduočių pavadinimai:

Kaip matome, mūsų užduotyse nėra nieko keisto, tačiau jei esame stebėtojai, suprantame, kad pirmiausia prieš atliekant statybos užduotį visada turime atlikti valymo užduotį, bet ką daryti, jei norime trečios užduoties, vadinamos įpakavimu, kuri vėliau supakuos projektas mums? Taigi pirmiausia turime jį sukurti, įsitikinti, kad katalogai yra švarūs ir galiausiai sukurti.
Problema ta, kad šis sprendimas nėra optimalus, jei dėl kokių nors priežasčių pamirštame vadinti švarią užduotį arba dar blogiau, mūsų kūrimo užduotis turės problemų atliekant trečiąją užduotį, laimei, pyragas leidžia mums iškviesti vieną užduotį kitoje naudojant šią funkciją kviesti, tada pažiūrėkime, kaip atrodo mūsų failas Torto failas su nauja užduotimi ir pakeitimais:
 užduotis "išvalyti", "Ši užduotis atlieka katalogų valymą", -> console.log "valyti dir …" užduotis "build", "Sukurti ir sudaryti projekto failus", -> console.log "building …" task "pack", "clean, build and pack our project", -> invoke "clean" iškviesti "build" console.log "pakavimas …"
Dabar turime tik paskambinti savo pakuotei ir tokiu būdu įsitikinti, kad kitos dvi būtinos užduotys iškviečiamos be problemų, pažiūrėkime išvestį komandų pulte:

Svarbu paminėti, kad šią funkciją atliekančios užduotys kviesti jie vykdomi asinchroniškai, todėl mes negarantuojame, kad valymo užduotis bus atlikta prieš statant ir pakuojant, todėl turime būti atsargūs juos naudodami.
Tuo baigiame šią pamoką, kurioje išmokome kurti savo užduotis, jas vykdyti, suteikti jiems pasirinkimų ir netgi kaip iškviesti kitas užduotis kitiems, taip išplėsdami savo žinias šia veiksminga kalba, kuri prisideda prie geriausios bet kokios plėtros praktikos.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave