Nos scripts et feuilles de style passent par un préprocesseur et sont minifiés, nos images sont compressées et transformées en sprites : le temps où les assets de nos projets pouvaient être fournis de la même manière en production et en développement est maintenant loin dernière nous. Si vous vous perdez dans votre liste de tâches à effectuer avant de pouvoir tester ou build vos projets, je vous propose de découvrir cette liste de task runners.
Grunt est un peu l'ancêtre des tasks runner de cette liste. De loin le plus vieux, il est très largement utilisé, possède de nombreux plugins, et est assez bien documenté. Problème, Grunt est aussi assez lent pour les gros projets, et je trouve sa syntaxe verbeuse et peu agréable.
Gulp est une alternative à Grunt qui corrige tous les points manquants de Grunt. Beaucoup plus rapide (grace à l'utilisation des streams de Nodejs), la philosophie qui dicte sa syntaxe est "code over configuration", ce que je trouve très agréable.
Niveau doc, par contre, ça coince un peu : le site nous renvoie sur Github, ou un tutoriel nous explique en quelques étapes comment créer une tache qui ne fait rien (ce n'est pas une blague, je vous l'assure). Pour aller plus loin que "do-nothing", le doc nous envoie vers une liste d'articles.
Broccoli est le task runner que j'utilise actuellement. Son fonctionnement diffère des deux précédents par le fait qu'il travaille avec des dossiers et des arborescences plutôt qu'avec des fichiers directement. Assez proche de l'asset pipeline de Rails (ce qui explique peut-être pourquoi je l'ai préféré aux autres), sa documentation est un cran au-dessus de Gulp mais laisse tout de même à désirer. Sa vitesse est aussi comparable à Gulp, voir même un peu plus grande grâce au fait que Broccoli ne compile que les fichiers ayant été modifiés.
Enfin, dernier avantage, Broccoli possède une commande "serve", qui lui permet d'ouvrir un petit serveur local pour simplifier votre développement.