Bruke kake i CoffeeScript

Innholdsfortegnelse
CoffeeScript er et språk som lar oss skrive bedre JavaScript -kode, dette forener den og innrammer den under samme struktur, hvor vi vil være sikre på at JavaScript -koden opprettet av CoffeeScript av en annen utvikler vil den være identisk med vår.
Men dette er ikke alt det tilbyr CoffeeScript, i tillegg har den et verktøy kalt Kake, lik Grunt som lar oss definere enkle oppgaver for å hjelpe oss med prosjektene våre, siden det er mulig at vi trenger en oppgave for å kjøre tester eller bare en for å bygge filene våre, og vi kan gjøre alt dette med Kake gjennom en fil som heter Cakefile.
KravFor å fullføre denne opplæringen må vi ha en funksjonell installasjon av CoffeeScript, vi trenger også tillatelser til å skrive filer og utføre CoffeeScript på datamaskinen der vi gjør opplæringen. Vi trenger en tekstredigerer som Sublim tekst for å kunne skrive koden til eksemplene våre, og det skader aldri å ta en titt på tidligere opplæringsprogrammer for språket.
Før du starter er det viktig å nevne at vi ikke trenger å installere Kake, på tidspunktet for vår første installasjon av CoffeeScript verktøyet er installert på samme måte, så vi trenger ikke gjøre noe mer for å begynne å jobbe med det.
Når vi vet dette, kan vi begynne å jobbe med Kake, men vi må forstå at alle oppgavene vi lager må være plassert i en fil som heter Cakefile, som må ha nøyaktig samme navn siden cakefile det vil være en helt annen fil og vil ikke bli gjenkjent av kompilatoren.
Denne filen må være roten til prosjektet vårt, og det er ekstremt viktig at innholdet bare er kode CoffeeScript. Etter å ha avklart dette, la oss se hvordan vi lager vår første oppgave med Kake.
Vi skal lage en mappe som heter cakefile_example og der skal vi lage en fil som heter Kakefil. Kaffe og det vil inneholde følgende innhold:
 oppgave "hilsen", "La oss si hei til det store solvetiske samfunnet", -> console.log "Hei, verden!"
Før vi forklarer koden vår, skal vi kompilere den og se innholdet generert i JavaScript, dette er ikke nødvendig siden vi aldri kommer til å se denne koden, men denne gangen kan vi bruke den til å bedre forstå hva den gjør CoffeeScript, la oss se utgangen:

FORSTØRRE

Siden vi er i kontekst kan vi forklare koden vår, først definerer vi oppgaven med funksjonen oppgave som automatisk legges til i hver fil Cakefile. Det første argumentet for funksjonen er navnet på oppgaven, i dette tilfellet er det hilsen og vi vil bruke det i kommandokonsollen for å utføre oppgaven, det andre argumentet kan være valgfritt og er en beskrivelse av oppgaven som vil vises i listen over våre tilgjengelige oppgaver. Det siste argumentet sender vi inn funksjonen oppgave det er en annen funksjon som vil bli utført av oppgaven, og det er der det meste av vår logikk vil bli deponert.
Det forrige eksemplet var bare å sjekke hva kompilatoren gjorde, men filen vår Cakefile den må ikke ha noen utvidelse. Vi kan i tillegg se hvilke oppgaver vi har tilgjengelig med kommandoen kake La oss se hvordan det ser ut i kommandokonsollen:

Som vi kan se kan vi se navnet på oppgaven vår samt beskrivelsen. Nå for å utføre en bestemt oppgave bruker vi kakekommandoen etterfulgt av navnet på oppgaven, for å fullføre, la oss se utgangen fra konsollen:

Vi vet allerede hvordan vi lager en oppgave og kjører den, men hva om vi ønsker å sende noen argumenter til den? For eksempel, hva hvis vi vil at hilsenen vår skal være helt personlig etter en verdi vi sender? Dette er ganske enkelt å gjøre, la oss se.
Det første vi må gjøre i oppgaven vår er å definere alternativet, vi gjør dette med funksjonen alternativ tilgjengelig Kake. Denne funksjonen tar tre argumenter, den første er alternativets korte form, den andre er den lange formen og den siste er en beskrivelse av hva alternativet gjør, noe viktig hvis vi utvikler oss som et team og ønsker å dokumentere våre oppgaver. Vi skal deretter gjøre endringene i oppgaven vår for å definere alternativet:
 alternativet '-n', '--navn [NAME]', 'navn for å hilse' oppgave "hilsen", "Vi sier hei til noen", (alternativer)-> melding = "Hei", hvis options.name? melding + = options.name else melding + = "Verden" console.log melding
Som vi ser før definisjonen av oppgave vi har vår funksjon alternativ, etterfulgt av den korte formen som ville være -n, så har vi den lange formen som ville være -navn som angir at den vil forvente en verdi og til slutt beskrivelsen. Vi skal utføre kakekommandoen og se utgangen i konsollen vår:

Som vi kan se, har vi navnet på oppgaven vår, beskrivelsen og under den har vi alternativene tilgjengelig for den, de korte og lange alternativene samt beskrivelsen. La oss kjøre oppgaven vår med det korte alternativet og se utdataene fra konsollen:

For å utføre en oppgave med alternativer er det viktig at vi først spesifiserer argumentene og deretter navnet på oppgaven, siden hvis vi ikke får en feil, sier det ikke mye om hva som kan skje med vår Cakefile -fil, så la oss se hvordan utførelsen bruker det andre alternativet:

Her skjer det noe særegent, og det er at før vi utfører oppgaven bruker vi alternativet med et enkelt skript, noe som gir oss en feil, og det er riktig å gjøre siden vi i vår oppgave har definert alternativet som --- navn i stedet for -navn, og demonstrerer dermed effekten av CoffeeScript for drift av oppgaver.
I tillegg kan vi definere om et alternativ er nødvendig, og vi gjør dette i definisjonen av oppgaven som sjekker om verdien eksisterer, og hvis vi ikke kaster en feil, la oss se hvordan denne koden ser ut:
 alternativet '-n', '--navn [NAME]', 'navn du vil hilse på' oppgave "hilsen", "Bekreft at alternativet eksisterer", (alternativer)-> kast ny feil ("[NAME] er en verdi påkrevd ") med mindre options.name? console.log "Hei, # {options.name}"
La oss deretter kjøre oppgaven vår, men denne gangen ignorerer vi alternativet som et argument og ser svaret fra konsollen:

Som vi kan se, ble feilen vi inkluderte i filen vist, og dermed kunne vi validere at alternativene for oppgavene våre blir passert som argumenter når det er nødvendig.
Etter å ha sett hvordan vi lager oppgavene våre og definerer alternativer for dem, er det viktig å se hvordan vi kan utføre oppgaver som finnes i andre. For eksempel kan vi ha to oppgaver til felles i et prosjekt der en av oppgavene har ansvaret for rengjøring av katalogene som vi har bygget for prosjektet, og den andre har ansvaret for å kompilere og bygge, la oss se hvordan disse to oppgavene som vi har akkurat sett ut. Beskriv:
 oppgave "clean", "Denne oppgaven utfører rengjøring av katalogene", -> console.log "rengjøring av dir …" task "build", "Build and compile the files for the project", -> console.log "bygge …"
Vi kommer til å utføre kommandoen kake og la oss se svaret gjennom konsollen:

I tillegg til å kjøre begge oppgavene sammen kan vi bruke kakekommandoen etterfulgt av begge navnene på oppgavene våre:

Som vi kan se, er det ikke noe rart i oppgavene våre, men hvis vi er observatører, innser vi at vi først må utføre rengjøringsoppgaven alltid før konstruksjonsoppgaven, men hva om vi vil ha en tredje oppgave kalt emballasje, som deretter pakker prosjekt for oss? Så vi må først bygge den, sørge for at katalogene er rene og til slutt bygge.
Problemet er at denne løsningen ikke er optimal, hvis vi av en eller annen grunn glemmer å kalle den rene oppgaven eller verre, vil vår byggeoppgave få problemer med vår tredje oppgave, heldigvis lar Cake oss kalle en oppgave i en annen med funksjonen påkalle, så la oss se hvordan filen vår ser ut Cakefile med den nye oppgaven og modifikasjonene:
 oppgave "clean", "Denne oppgaven utfører rengjøring av katalogene", -> console.log "rengjøring av dir …" task "build", "Build and compile the files for the project", -> console.log "bygge …" oppgave "pakke", "rense, bygge og pakke prosjektet vårt", -> påkalle "ren" påkalle "bygge" console.log "pakke …"
Nå må vi bare ringe emballasjen vår, og på den måten sørger vi for at de to andre nødvendige oppgavene kalles uten problemer, la oss se utgangen i kommandokonsollen:

Det er viktig å nevne at oppgavene som bruker funksjonen påkalle de utføres asynkront, så vi har ingen garanti for at oppryddingsoppgaven vil bli utført før bygging og emballering, så vi må være forsiktige i bruken av dem.
Med dette avslutter vi denne opplæringen, der vi lærte å lage oppgavene våre, utføre dem, gi dem alternativer og til og med hvordan vi kan påberope oss andre oppgaver i andre, og dermed utvide vår kunnskap på dette effektive språket som bidrar til beste praksis for enhver utvikling.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave