Sadržaj
CoffeeScript je jezik koji nam omogućuje pisanje boljeg JavaScript koda, objedinjujući ga i uokvirujući ga u istu strukturu, pri čemu ćemo biti sigurni da je JavaScript kôd koji je izradio CoffeeScript od drugog programera bit će identičan našem.No, to nije sve što nudi CoffeeScript, dodatno ima i alat tzv Torta, slično Gruntu koji nam omogućuje definiranje jednostavnih zadataka koji će nam pomoći u našim projektima, budući da je moguće da nam je potreban zadatak za pokretanje testova ili jednostavno jedan za izradu datoteka, a sve to možemo učiniti s Torta putem datoteke pod nazivom Torta datoteka.
ZahtjeviDa bismo dovršili ovaj vodič, moramo imati funkcionalnu instalaciju CoffeeScript, potrebna su nam i dopuštenja za pisanje datoteka i izvršavanje CoffeeScript na računalu na kojem radimo udžbenik. Trebamo uređivač teksta poput Uzvišen tekst kako biste mogli napisati kôd naših primjera i nikad vam ne škodi pogledati prošle udžbenike jezika.
Prije početka važno je napomenuti da ne moramo instalirati Torta, u vrijeme naše prve instalacije CoffeeScript alat je instaliran na isti način, tako da ne moramo učiniti ništa dodatno da bismo počeli raditi s njim.
Znajući to, možemo početi raditi Torta, ali moramo shvatiti da se svi zadaci koje stvaramo moraju nalaziti u datoteci pod nazivom Torta datoteka, koji od tada mora imati potpuno isti naziv kolač to će biti potpuno druga datoteka i prevoditelj je neće prepoznati.
Ova datoteka mora biti u korijenu našeg projekta i iznimno je važno da njezin sadržaj bude samo kôd CoffeeScript. Kad smo ovo razjasnili, pogledajmo kako izraditi naš prvi zadatak Torta.
Napravit ćemo mapu pod nazivom kolač datoteka_primjer i tamo ćemo stvoriti datoteku pod nazivom Cakefile.kava i sadržavat će sljedeći sadržaj:
zadatak "pozdrav", "Pozdravimo veliku solvetsku zajednicu", -> console.log "Zdravo, Svijete!"Prije nego što objasnimo naš kôd, sastavit ćemo ga i vidjeti sadržaj generiran u JavaScriptu, to nije potrebno jer ovaj kôd nikada nećemo vidjeti, ali ovaj put bismo ga mogli iskoristiti da bolje razumijemo što radi CoffeeScript, pogledajmo izlaz:
POVEĆAJTE
Budući da smo u kontekstu, možemo objasniti naš kôd, prvo definiramo zadatak s funkcijom zadatak koji se automatski dodaje svakoj datoteci Torta datoteka. Prvi argument funkcije je naziv zadatka, u ovom slučaju to je to pozdrav i mi ćemo ga koristiti u naredbenoj konzoli za izvršavanje zadatka, drugi argument može biti neobavezan i opis je zadatka koji će se pojaviti na popisu naših dostupnih zadataka. Posljednji argument koji šaljemo u funkciji zadatak to je još jedna funkcija koju će zadatak izvršiti i tu će biti pohranjena većina naše logike.Prethodni primjer bio je samo provjeriti što radi prevoditelj, ali naša datoteka Torta datoteka ne smije imati nikakvo proširenje. Pomoću naredbe možemo dodatno vidjeti koje zadatke imamo na raspolaganju torta U komandnoj konzoli, da vidimo kako to izgleda:
Kao što vidimo, možemo vidjeti naziv našeg zadatka, kao i opis. Sada za izvršavanje određenog zadatka koristimo naredbu cake nakon koje slijedi naziv zadatka. Za kraj da vidimo izlaz iz konzole:
Već znamo stvoriti zadatak i pokrenuti ga, ali što ako mu želimo prenijeti neke argumente? Na primjer, što ako želimo da naš pozdrav bude potpuno personaliziran prema vrijednosti koju šaljemo? Ovo je prilično jednostavno za napraviti, da vidimo.
Prvo što moramo učiniti u svom zadatku je definirati opciju, to činimo s funkcijom opcija dostupno Torta. Ova funkcija ima tri argumenta, prvi je kratki oblik opcije, drugi je dugi obrazac i zadnji je opis onoga što opcija radi, nešto važno ako se razvijamo kao tim i želimo dokumentirati svoje zadatke. Zatim ćemo izvršiti izmjene u našem zadatku kako bismo definirali opciju:
opcija '-n', '--ime [NAME]', 'ime za pozdrav' zadatak "pozdrav", "Pozdravimo nekoga", (opcije)-> poruka = "Zdravo", ako options.name? poruka + = options.name else poruka + = "Svjetska" poruka console.logKao što vidimo prije definicije zadatak mi imamo svoju funkciju opcija, nakon čega slijedi kratki oblik koji bi bio -n, tada imamo dugi oblik koji bi bio -name koji specificira da će očekivati vrijednost i na kraju opis. Izvršit ćemo naredbu cake i vidjeti izlaz u našoj konzoli:
Kao što vidimo, imamo naziv našeg zadatka, opis i ispod njega imamo dostupne opcije za njega, kratke i duge opcije kao i opis. Pokrenimo naš zadatak s opcijom short i vidimo izlaz s konzole:
Za izvršavanje zadatka s opcijama važno je da prvo navedemo argumente, a zatim i naziv zadatka jer ako ne naiđemo na pogrešku, to ne govori mnogo o tome što se može dogoditi s našom datotekom Cakefile, ajmo vidjeti kako izvršenje koristi drugu opciju:
Ovdje se događa nešto neobično, a to je da prije izvršavanja zadatka koristimo opciju s jednom skriptom, što nam daje pogrešku, a to je ispravno učiniti jer smo u svom zadatku definirali opciju kao --- ime umjesto -name, čime se dokazuje djelotvornost CoffeeScript za rad zadataka.
Dodatno možemo definirati je li opcija potrebna, a to činimo u definiciji zadatka provjeravajući postoji li vrijednost i ako ne napravimo pogrešku, da vidimo kako ovaj kod izgleda:
opcija '-n', '--ime [NAME]', 'ime koje želite pozdraviti' zadatak "pozdrav", "Provjerite postoji li opcija", (opcije)-> baci novu pogrešku ("[NAME] je potrebna vrijednost ") osim options.name? console.log "Pozdrav, # {options.name}"Pokrenimo onda naš zadatak, ali ovaj put zanemarujući opciju kao argument i pogledajte odgovor s konzole:
Kao što vidimo, prikazana je pogreška koju smo uključili u datoteku, čime smo mogli potvrditi da se opcije za naše zadatke prosljeđuju kao argumenti kada je to potrebno.
Budući da smo već vidjeli kako kreirati svoje zadatke i definirati opcije za njih, važno je vidjeti kako možemo izvršavati zadatke koji se nalaze u drugima. Na primjer, možemo imati dva zajednička zadatka u projektu u kojem je jedan od zadataka zadužen za čišćenje direktorija koje smo izgradili za projekt, a drugi je zadužen za sastavljanje i izgradnju, da vidimo kako će se ta dva zadatka koja upravo smo završili. Opišite: opišite:
zadatak "clean", "Ovaj zadatak obavlja čišćenje direktorija", -> console.log "čišćenje direktorija …" task "build", "Izgradnja i kompajliranje datoteka za projekt", -> console.log "zgrada …"Izvršit ćemo naredbu torta pa da vidimo odgovor kroz konzolu:
Osim toga, za zajedničko pokretanje oba zadatka možemo koristiti naredbu cake nakon koje slijede oba naziva naših zadataka:
Kao što vidimo, u našim zadaćama nema ništa čudno, ali ako smo promatrači, shvaćamo da prvo moramo izvršiti zadatak čišćenja uvijek prije našeg građevinskog zadatka, ali što ako želimo treći zadatak zvan pakiranje, koji će zatim zapakirati projekt za nas? Stoga ga moramo prvo izgraditi, provjeriti jesu li direktoriji čisti i konačno izgraditi.
Problem je u tome što ovo rješenje nije optimalno, ako iz nekog razloga zaboravimo nazvati čisti zadatak ili još gore, naš će zadatak izgradnje imati problema s našim trećim zadatkom, na sreću Cake nam omogućuje da pozovemo jedan zadatak u drugom s funkcijom prizivati, pa da vidimo kako izgleda naša datoteka Torta datoteka s novim zadatkom i izmjenama:
zadatak "clean", "Ovaj zadatak obavlja čišćenje direktorija", -> console.log "čišćenje direktorija …" task "build", "Izgradnja i kompajliranje datoteka za projekt", -> console.log "building …" task "pack", "clean, build and pack our project", -> invoke "clean" invoke "build" console.log "packing …"Sada samo moramo pozvati svoje pakiranje i na taj način ćemo se pobrinuti da se druga dva potrebna zadatka pozovu bez problema, pogledajmo izlaz u naredbenoj konzoli:
Važno je napomenuti da zadaci koji koriste funkciju prizivati izvode se asinkrono, pa nemamo jamstvo da će se zadatak čišćenja izvršiti prije izgradnje i pakiranja, stoga moramo biti oprezni u njihovoj uporabi.
Ovime zaključujemo ovaj vodič, gdje smo naučili stvarati svoje zadatke, izvršavati ih, davati im mogućnosti, pa čak i kako se pozivati na druge zadatke u drugima, proširujući tako naše znanje u ovom učinkovitom jeziku koji doprinosi najboljoj praksi svakog razvoja.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod