Table des matières
CoffeeScript est un langage qui nous permet d'écrire un meilleur code JavaScript, ceci en l'unifiant et en l'encadrant sous la même structure, où nous serons sûrs que le code JavaScript créé par CoffeeScript par un autre développeur, il sera identique au nôtre.Mais ce n'est pas tout ce qu'il offre CoffeeScript, en plus il dispose d'un outil appelé Gâteau, similaire à Grunt qui nous permet de définir des tâches simples pour nous aider dans nos projets, car il est possible que nous ayons besoin d'une tâche pour exécuter des tests ou simplement d'une pour construire nos fichiers et nous pouvons faire tout cela avec Gâteau via un fichier appelé Cakefile.
ExigencesPour terminer ce tutoriel, nous devons avoir une installation fonctionnelle de CoffeeScript, nous avons également besoin d'autorisations pour écrire des fichiers et exécuter CoffeeScript sur l'ordinateur où nous faisons le tutoriel. Nous avons besoin d'un éditeur de texte comme Texte sublime pour pouvoir écrire le code de nos exemples et cela ne fait jamais de mal de jeter un œil aux précédents tutoriels du langage.
Avant de commencer, il est important de mentionner que nous n'avons pas besoin d'installer Gâteau, lors de notre installation initiale de CoffeeScript l'outil est installé de la même manière, nous n'avons donc rien à faire de plus pour commencer à travailler avec.
Sachant cela, nous pouvons commencer à travailler avec Gâteau, mais nous devons comprendre que toutes les tâches que nous créons doivent se trouver dans un fichier appelé Cakefile, qui doit avoir exactement le même nom puisque gâteau ce sera un fichier totalement différent et ne sera pas reconnu par le compilateur.
Ce fichier doit être à la racine de notre projet et il est extrêmement important que son contenu ne soit que du code CoffeeScript. Après avoir clarifié cela, voyons comment créer notre première tâche avec Gâteau.
Nous allons créer un dossier appelé cakefile_example et là, nous allons créer un fichier appelé Cakefile.coffee et il contiendra le contenu suivant :
tâche "salutation", "Disons bonjour à la grande communauté Solvetic", -> console.log "Hello, World!"Avant d'expliquer notre code nous allons le compiler et voir le contenu généré en JavaScript, ce n'est pas nécessaire puisque nous ne verrons jamais ce code, mais cette fois nous pourrions l'utiliser pour mieux comprendre ce qu'il fait CoffeeScript, voyons le résultat :
AGRANDIR
L'exemple précédent était juste pour vérifier ce que faisait le compilateur, mais notre fichier Cakefile il ne doit pas avoir d'extension. Nous pouvons également voir quelles tâches nous avons à disposition avec la commande gâteau Dans la console de commande, voyons à quoi cela ressemble :
La première chose que nous devons faire dans notre tâche est de définir l'option, nous le faisons avec la fonction option disponible Gâteau. Cette fonction prend trois arguments, le premier est la forme courte de l'option, le second est la forme longue et le dernier est une description de ce que fait l'option, quelque chose d'important si nous développons en équipe et voulons documenter nos tâches. Nous allons ensuite faire les modifications sur notre tâche pour définir l'option :
option '-n', '--name [NAME]', 'nom à saluer' tâche "salutation", "Nous disons bonjour à quelqu'un", (options) -> message = "Bonjour", si options.name? message + = options.name else message + = "Monde" message console.logComme on le voit avant la définition de tâche nous avons notre fonction option, suivi de la forme courte qui serait -n, puis nous avons la forme longue qui serait -name spécifiant qu'elle attendra une valeur et enfin la description. Nous allons exécuter la commande cake et voir le résultat dans notre console :
De plus, nous pouvons définir si une option est requise et nous le faisons dans la définition de la tâche en vérifiant si la valeur existe et si nous ne lançons pas d'erreur, voyons à quoi ressemble ce code :
option '-n', '--name [NOM]', 'nom que vous voulez saluer' tâche "salutation", "Vérifier que l'option existe", (options) -> lancer une nouvelle erreur ("[NOM] est un valeur requise ") à moins que options.name? console.log "Bonjour, # {options.name}"Exécutons ensuite notre tâche mais cette fois en ignorant l'option comme argument et voyons la réponse de la console :
Ayant déjà vu comment créer nos tâches et définir des options pour celles-ci, il est important de voir comment nous pouvons exécuter des tâches qui se trouvent chez les autres. Par exemple, nous pouvons avoir deux tâches en commun dans un projet où l'une des tâches est en charge du nettoyage des répertoires que nous avons construits pour le projet et l'autre est en charge de la compilation et de la construction, voyons comment ces deux tâches qui nous venons de finir de ressembler.
task "clean", "Cette tâche effectue le nettoyage des répertoires", -> console.log "cleaning the dir…" task "build", "Build et compile les fichiers pour le projet", -> console.log "bâtir…"Nous allons exécuter la commande gâteau et voyons la réponse via la console :
Le problème est que cette solution n'est pas optimale, si pour une raison quelconque nous oublions d'appeler la tâche propre ou pire, notre tâche de construction aura des problèmes avec notre troisième tâche, heureusement Cake nous permet d'appeler une tâche dans une autre avec la fonction invoquer, alors voyons à quoi ressemble notre fichier Cakefile avec la nouvelle tâche et les modifications :
task "clean", "Cette tâche effectue le nettoyage des répertoires", -> console.log "cleaning the dir…" task "build", "Build et compile les fichiers pour le projet", -> console.log "building … "task" pack "," clean, build and pack our project ", -> invoke" clean "invoke" build "console.log" packaging … "Il ne nous reste plus qu'à appeler notre package et ainsi nous assurer que les deux autres tâches requises sont appelées sans problème, voyons le résultat dans la console de commande :
Avec cela, nous concluons ce tutoriel, où nous avons appris à créer nos tâches, les exécuter, leur donner des options et même comment invoquer d'autres tâches parmi d'autres, élargissant ainsi nos connaissances dans ce langage efficace qui contribue aux meilleures pratiques de tout développement.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif