Brug af kage i CoffeeScript

Indholdsfortegnelse
CoffeeScript er et sprog, der giver os mulighed for at skrive bedre JavaScript -kode, dette forener den og indrammer den under samme struktur, hvor vi vil være sikre på, at JavaScript -koden er oprettet af CoffeeScript af en anden udvikler vil det være identisk med vores.
Men det er ikke alt, det tilbyder CoffeeScript, derudover har det et værktøj kaldet Kageligner Grunt, der giver os mulighed for at definere enkle opgaver for at hjælpe os med vores projekter, da det er muligt, at vi har brug for en opgave for at køre test eller simpelthen en for at bygge vores filer, og vi kan gøre alt dette med Kage gennem en fil kaldet Cakefile.
KravFor at fuldføre denne vejledning skal vi have en funktionel installation af CoffeeScript, vi har også brug for tilladelser til at skrive filer og udføre CoffeeScript på computeren, hvor vi laver selvstudiet. Vi har brug for en tekstredigerer som Sublim tekst for at kunne skrive koden til vores eksempler, og det skader aldrig at tage et kig på sprogets tidligere tutorials.
Inden start er det vigtigt at nævne, at vi ikke behøver at installere Kage, på tidspunktet for vores første installation af CoffeeScript værktøjet er installeret på samme måde, så vi behøver ikke gøre noget ekstra for at begynde at arbejde med det.
Ved at vide dette kan vi begynde at arbejde med Kage, men vi skal forstå, at alle de opgaver, vi opretter, skal være placeret i en fil kaldet Cakefile, som skal have nøjagtig samme navn siden cakefile det vil være en helt anden fil og genkendes ikke af kompilatoren.
Denne fil skal være roden til vores projekt, og det er ekstremt vigtigt, at dens indhold kun er kode CoffeeScript. Efter at have afklaret dette, lad os se, hvordan vi opretter vores første opgave med Kage.
Vi skal oprette en mappe kaldet cakefile_example og der skal vi oprette en fil kaldet Kagefil. Kaffe og det vil indeholde følgende indhold:
 opgave "hilsen", "Lad os sige hej til det store solvetiske samfund", -> console.log "Hej, verden!"
Inden vi forklarer vores kode, vil vi kompilere den og se indholdet genereret i JavaScript, dette er ikke nødvendigt, da vi aldrig vil se denne kode, men denne gang kunne vi bruge den til bedre at forstå, hvad den gør CoffeeScript, lad os se output:

FORSTØRRE

Da vi er i kontekst, kan vi forklare vores kode, først definerer vi opgaven med funktionen opgave som automatisk tilføjes til hver fil Cakefile. Funktionens første argument er opgavens navn, i dette tilfælde er det hilsen og vi vil bruge det i kommandokonsollen til at udføre opgaven, det andet argument kan være valgfrit og er en beskrivelse af opgaven, der vises på listen over vores tilgængelige opgaver. Det sidste argument sender vi i funktionen opgave det er en anden funktion, der vil blive udført af opgaven, og det er her, det meste af vores logik vil blive deponeret.
Det foregående eksempel var bare at kontrollere, hvad kompilatoren lavede, men vores fil Cakefile den må ikke have nogen udvidelse. Vi kan desuden se, hvilke opgaver vi har til rådighed med kommandoen kage Lad os i kommandokonsollen se, hvordan det ser ud:

Som vi kan se, kan vi se navnet på vores opgave samt beskrivelsen. Nu for at udføre en bestemt opgave bruger vi kage -kommandoen efterfulgt af opgavens navn, for at afslutte lad os se output fra konsollen:

Vi ved allerede, hvordan vi opretter en opgave og kører den, men hvad nu hvis vi vil sende nogle argumenter til den? For eksempel, hvad hvis vi ønsker, at vores hilsen skal være helt personlig efter en værdi, vi sender? Dette er ret let at gøre, lad os se.
Det første, vi skal gøre i vores opgave, er at definere indstillingen, vi gør dette med funktionen mulighed ledig Kage. Denne funktion tager tre argumenter, den første er optionens korte form, den anden er den lange form og den sidste er en beskrivelse af, hvad optionen gør, noget vigtigt, hvis vi udvikler os som et team og ønsker at dokumentere vores opgaver. Vi vil derefter foretage ændringerne af vores opgave for at definere indstillingen:
 option '-n', '--name [NAME]', 'name to hilse' opgave "hilsen", "Vi siger hej til nogen", (optioner)-> message = "Hello", if options.name? besked + = options.name else meddelelse + = "Verden" console.log besked
Som vi ser før definitionen af opgave vi har vores funktion mulighed, efterfulgt af den korte form, der ville være -n, så har vi den lange form, der ville være -navn, der angiver, at den vil forvente en værdi og til sidst beskrivelsen. Vi skal udføre kage -kommandoen og se output i vores konsol:

Som vi kan se, har vi navnet på vores opgave, beskrivelsen og under den har vi de tilgængelige muligheder for den, de korte og lange muligheder samt beskrivelsen. Lad os køre vores opgave med den korte mulighed og se output fra konsollen:

For at udføre en opgave med muligheder er det vigtigt, at vi først angiver argumenterne og derefter navnet på opgaven, da hvis vi ikke støder på en fejl, siger det ikke meget om, hvad der kan ske med vores Cakefile -fil, så lad os se, hvordan udførelsen bruger den anden mulighed:

Her sker noget ejendommeligt, og det er, at før vi udfører opgaven, bruger vi indstillingen med et enkelt script, hvilket giver os en fejl, og det er det rigtige at gøre, da vi i vores opgave har defineret muligheden som --- navn i stedet for -navn, hvilket viser effektiviteten af CoffeeScript til drift af opgaver.
Derudover kan vi definere, om en mulighed er påkrævet, og vi gør dette i definitionen af ​​opgaven, der kontrollerer, om værdien findes, og hvis vi ikke kaster en fejl, lad os se, hvordan denne kode ser ud:
 option '-n', '--name [NAME]', 'navn du vil hilse på' opgave "hilsen", "Bekræft at indstillingen findes", (optioner)-> smid ny fejl ("[NAME] er en værdi påkrævet ") medmindre options.name? console.log "Hej, # {options.name}"
Lad os derefter køre vores opgave, men denne gang ignorerer vi indstillingen som et argument og ser svaret fra konsollen:

Som vi kan se, blev den fejl, vi inkluderede i filen, vist, og dermed kunne validere, at mulighederne for vores opgaver overføres som argumenter, når det er nødvendigt.
Efter allerede at have set, hvordan vi opretter vores opgaver og definerer muligheder for dem, er det vigtigt at se, hvordan vi kan udføre opgaver, der findes i andre. For eksempel kan vi have to opgaver til fælles i et projekt, hvor den ene af opgaverne står for rengøring af de biblioteker, som vi har bygget til projektet, og den anden har ansvaret for at kompilere og bygge, lad os se, hvordan disse to opgaver, der vi er lige færdige med at se ud. beskriv:
 opgave "ren", "Denne opgave udfører rengøring af mapper", -> console.log "rengøring af dir …" opgave "build", "Byg og kompilér filerne til projektet", -> console.log "bygning …"
Vi vil udføre kommandoen kage og lad os se svaret gennem konsollen:

For at køre begge opgaver sammen kan vi bruge kage -kommandoen efterfulgt af begge navne på vores opgaver:

Som vi kan se, er der ikke noget mærkeligt i vores opgaver, men hvis vi er observatører, indser vi, at vi først skal udføre rengøringsopgaven altid før vores byggeopgave, men hvad nu hvis vi vil have en tredje opgave kaldet emballage, som derefter pakker projekt for os? Så vi skal først bygge det, sørge for at bibliotekerne er rene og endelig bygge.
Problemet er, at denne løsning ikke er optimal, hvis vi af en eller anden grund glemmer at kalde den rene opgave eller værre, vil vores byggeopgave have problemer med vores tredje opgave, heldigvis giver Cake os mulighed for at kalde en opgave inden for en anden med funktionen påkalde, så lad os se, hvordan vores fil ser ud Cakefile med den nye opgave og ændringer:
 opgave "ren", "Denne opgave udfører rengøring af mapper", -> console.log "rengøring af dir …" opgave "build", "Byg og kompilér filerne til projektet", -> console.log "bygning …" opgave "pakke", "rense, bygge og pakke vores projekt", -> påberåbe "ren" påberåbe "bygge" console.log "pakke …"
Nu skal vi bare ringe til vores emballage, og på den måde sikrer vi, at de to andre krævede opgaver kaldes uden problemer, lad os se output i kommandokonsollen:

Det er vigtigt at nævne, at de opgaver, der bruger funktionen påkalde de udføres asynkront, så vi har ingen garanti for, at oprydningsopgaven udføres før opbygning og emballering, så vi skal være forsigtige i deres brug.
Med dette afslutter vi denne vejledning, hvor vi lærte at oprette vores opgaver, udføre dem, give dem muligheder og endda hvordan vi kan påberåbe andre opgaver inden for andre og dermed udvide vores viden i dette effektive sprog, der bidrager til den bedste praksis i enhver udvikling.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave