Cake gebruiken in CoffeeScript

Inhoudsopgave
KoffieScript is een taal waarmee we betere JavaScript-code kunnen schrijven, dit verenigt het en kadert het in dezelfde structuur, waar we er zeker van zijn dat de JavaScript-code die is gemaakt door KoffieScript door een andere ontwikkelaar zal het identiek zijn aan de onze.
Maar dit is niet alles wat het biedt KoffieScript, bovendien heeft het een tool genaamd Taart, vergelijkbaar met Grunt waarmee we eenvoudige taken kunnen definiëren om ons te helpen met onze projecten, omdat het mogelijk is dat we een taak nodig hebben om tests uit te voeren of gewoon een om onze bestanden te bouwen en we kunnen dit allemaal doen met Taart via een bestand genaamd Cakefile.
VereistenOm deze tutorial te voltooien, moeten we een functionele installatie hebben van: KoffieScript, we hebben ook machtigingen nodig om bestanden te schrijven en uit te voeren KoffieScript op de computer waarop we de tutorial doen. We hebben een teksteditor nodig zoals Sublieme tekst om de code van onze voorbeelden te kunnen schrijven en het kan nooit kwaad om de eerdere tutorials van de taal te bekijken.
Voordat u begint, is het belangrijk om te vermelden dat we niet hoeven te installeren Taart, op het moment van onze eerste installatie van KoffieScript de tool wordt op dezelfde manier geïnstalleerd, dus we hoeven niets extra's te doen om ermee aan de slag te gaan.
Als we dit weten, kunnen we ermee aan de slag Taart, maar we moeten begrijpen dat alle taken die we maken zich in een bestand moeten bevinden met de naam Cakefile, die sindsdien exact dezelfde naam moet hebben cakefile het wordt een totaal ander bestand en wordt niet herkend door de compiler.
Dit bestand moet in de root van ons project staan ​​en het is uiterst belangrijk dat de inhoud slechts code is KoffieScript. Nu we dit hebben opgelost, laten we eens kijken hoe we onze eerste taak kunnen maken met Taart.
We gaan een map maken met de naam cakefile_example en daar gaan we een bestand maken met de naam Cakefile.koffie en het zal de volgende inhoud bevatten:
 taak "begroet", "Laten we hallo zeggen tegen de geweldige Solvetic-gemeenschap", -> console.log "Hallo, wereld!"
Voordat we onze code uitleggen, gaan we deze compileren en de inhoud zien die is gegenereerd in JavaScript, dit is niet nodig omdat we deze code nooit zullen zien, maar deze keer zouden we deze kunnen gebruiken om beter te begrijpen wat het doet KoffieScript, laten we de uitvoer bekijken:

VERGROTEN

Omdat we in context zijn, kunnen we onze code uitleggen, eerst definiëren we de taak met de functie taak die automatisch aan elk bestand wordt toegevoegd Cakefile. Het eerste argument van de functie is de naam van de taak, in dit geval is dat groet en we zullen het in de opdrachtconsole gebruiken om de taak uit te voeren, het tweede argument kan optioneel zijn en is een beschrijving van de taak die in de lijst met onze beschikbare taken zal verschijnen. Het laatste argument dat we in de functie sturen taak het is een andere functie die door de taak zal worden uitgevoerd en het is waar de meeste van onze logica zal worden gedeponeerd.
Het vorige voorbeeld was alleen om te controleren wat de compiler aan het doen was, maar ons bestand Cakefile het mag geen extensie hebben. We kunnen bovendien zien welke taken we beschikbaar hebben met de opdracht taart Laten we in de opdrachtconsole eens kijken hoe het eruit ziet:

Zoals we kunnen zien, kunnen we zowel de naam van onze taak als de beschrijving zien. Om nu een bepaalde taak uit te voeren, gebruiken we het cake-commando gevolgd door de naam van de taak, om af te ronden, laten we de uitvoer van de console bekijken:

We weten al hoe we een taak moeten maken en uitvoeren, maar wat als we er wat argumenten aan willen doorgeven? Wat als we bijvoorbeeld willen dat onze begroeting volledig gepersonaliseerd is volgens een waarde die we verzenden? Dit is vrij eenvoudig te doen, laten we eens kijken.
Het eerste dat we in onze taak moeten doen, is de optie definiëren, we doen dit met de functie keuze beschikbaar Taart. Deze functie heeft drie argumenten, de eerste is de korte vorm van de optie, de tweede is de lange vorm en de laatste is een beschrijving van wat de optie doet, iets belangrijks als we ons als team ontwikkelen en onze taken willen documenteren. We gaan dan de wijzigingen aanbrengen in onze taak om de optie te definiëren:
 optie '-n', '--naam [NAAM]', 'naam om te begroeten' taak "begroeting", "We zeggen hallo tegen iemand", (opties) -> message = "Hallo", if options.name? message + = options.name else message + = "World" console.log message
Zoals we zien voor de definitie van taak we hebben onze functie keuze, gevolgd door de korte vorm die -n zou zijn, dan hebben we de lange vorm die -name zou zijn om aan te geven dat het een waarde zal verwachten en tenslotte de beschrijving. We gaan het cake-commando uitvoeren en de uitvoer in onze console bekijken:

Zoals we kunnen zien, hebben we de naam van onze taak, de beschrijving en daaronder hebben we de opties beschikbaar, de korte en lange opties evenals de beschrijving. Laten we onze taak uitvoeren met de korte optie en de uitvoer van de console bekijken:

Om een ​​taak met opties uit te voeren, is het belangrijk dat we eerst de argumenten specificeren en dan de naam van de taak, want als we geen fout tegenkomen, zegt het niet veel over wat er met ons Cakefile-bestand kan gebeuren, laten we dan eens kijken hoe de uitvoering gebruikt de tweede optie:

Hier gebeurt iets eigenaardigs en het is dat voordat we de taak uitvoeren, we de optie gebruiken met een enkel script, wat ons een fout geeft en het is het juiste om te doen, omdat we in onze taak de optie hebben gedefinieerd als --- naam in plaats van -naam, waarmee de werkzaamheid van wordt aangetoond KoffieScript voor het uitvoeren van taken.
Bovendien kunnen we definiëren of een optie vereist is en we doen dit in de definitie van de taak om te controleren of de waarde bestaat en als we geen fout genereren, laten we eens kijken hoe deze code eruit ziet:
 optie '-n', '--name [NAAM]', 'naam die u wilt begroeten' taak "begroeting", "Controleer of de optie bestaat", (opties) -> gooi nieuwe fout ("[NAAM] is een waarde vereist ") tenzij options.name? console.log "Hallo, # {options.name}"
Laten we dan onze taak uitvoeren, maar deze keer de optie als argument negeren en het antwoord van de console bekijken:

Zoals we kunnen zien, werd de fout weergegeven die we in het bestand hadden opgenomen, waardoor we konden valideren dat de opties voor onze taken indien nodig als argumenten worden doorgegeven.
Nadat we al hebben gezien hoe we onze taken kunnen maken en opties ervoor kunnen definiëren, is het belangrijk om te zien hoe we taken kunnen uitvoeren die bij anderen worden gevonden. We kunnen bijvoorbeeld twee taken gemeen hebben in een project waarbij een van de taken verantwoordelijk is voor het opschonen van de mappen die we voor het project hebben gebouwd en de andere voor het compileren en bouwen, laten we eens kijken hoe deze twee taken die we zijn net klaar met eruit zien. beschrijven:
 taak "opschonen", "Deze taak voert het opschonen van de mappen uit", -> console.log "de map opschonen …" taak "build", "Bouw en compileer de bestanden voor het project", -> console.log "gebouw…"
We gaan het commando uitvoeren taart en laten we het antwoord via de console bekijken:

Om beide taken samen uit te voeren, kunnen we het cake-commando gebruiken, gevolgd door beide namen van onze taken:

Zoals we kunnen zien, is er niets vreemds aan onze taken, maar als we waarnemers zijn, realiseren we ons dat we eerst de schoonmaaktaak altijd vóór onze bouwtaak moeten uitvoeren, maar wat als we een derde taak willen, genaamd verpakken, die dan de project voor ons? Dus we moeten het eerst bouwen, ervoor zorgen dat de mappen schoon zijn en uiteindelijk bouwen.
Het probleem is dat deze oplossing niet optimaal is, als we om de een of andere reden vergeten de schone taak te bellen of erger, onze build-taak zal problemen hebben met onze derde taak, gelukkig stelt Cake ons in staat om de ene taak in de andere aan te roepen met de functie aanroepen, laten we dan eens kijken hoe ons bestand eruitziet Cakefile met de nieuwe taak en aanpassingen:
 taak "opschonen", "Deze taak voert het opschonen van de mappen uit", -> console.log "de map opschonen …" taak "build", "Bouw en compileer de bestanden voor het project", -> console.log "building … "task" pack "," clean, build en pack ons ​​project ", -> aanroepen" clean "invoke" build "console.log" inpakken … "
Nu hoeven we alleen maar onze verpakking aan te roepen en op die manier zorgen we ervoor dat de andere twee vereiste taken zonder problemen worden aangeroepen, laten we de uitvoer in de opdrachtconsole bekijken:

Het is belangrijk om te vermelden dat de taken die gebruik maken van de functie aanroepen ze worden asynchroon uitgevoerd, dus we hebben geen garantie dat de opruimtaak wordt uitgevoerd voordat ze worden gebouwd en verpakt, dus we moeten voorzichtig zijn bij het gebruik ervan.
Hiermee sluiten we deze tutorial af, waar we hebben geleerd om onze taken te creëren, ze uit te voeren, ze opties te geven en zelfs hoe we andere taken binnen anderen kunnen aanroepen, en zo onze kennis uit te breiden in deze effectieve taal die bijdraagt ​​aan de best practices van elke ontwikkeling.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave