Gulp, pour un environnement de travail confortable
Thomas Robert
4 août 2017Introduction
La légende raconte que dans les prémices d’internet et du web, les développeurs alliaient HTML, CSS et JavaScript dans leur forme la plus pure. Oui Monsieur, moi d’mon temps, on avait pas tout ces pré-processeurs ou autres frameworks, on codait un site de A à Z, assemblé à la main !
Et bien heureusement, ces temps archaïques sont révolus.
La problématique, c’est qu’au bout d’un moment, tout le monde a commencé à faire sa petite tambouille de son côté. Les navigateurs implémentent les fonctionnalités web chacun à son rythme, différentes communautés créent des compilateurs pour rendre les langages web plus modulables… De plus, on sensibilise beaucoup les développeurs sur l’optimisation des performances.
Comment jongler avec tous ces différents paramètres sans doubler ses lignes de codes ? Une réponse plausible en 4 lettres: Gulp.
Gulp, c’est quoi ?
Ce petit outil ingénieux fait parti de la famille des « taskers », les systèmes d’automatisation de tâches. Dans l’idée; on pose nos fichiers à l’entrée d’une grosse machine et ils en ressortent adaptés, optimisés, utilisables partout.
Mais chaque projet répond à des demandes et des attentes différentes, et donc la configuration de notre machine également. Voici toutefois quelque exemples que nous utilisons souvent à 8bitstudio
Les tâches
Initialisation
On lance d’abord BrowserSync. Il a deux avantages conséquents: premièrement, la page sur laquelle nous travaillons se met à jour automatiquement lorsque l’on enregistre une nouvelle version d’un fichier. Mieux encore, il injecte le CSS dynamiquement sans même devoir recharger la page ! Conséquence: l’éditeur à gauche, le navigateur à droite, et notre travail qui apparaît à chaque coup de Cmd+s.
Deuxième avantage, il est synchronisé sur les différents appareils en local. En d’autres termes: quand je navigue sur mon smartphone, les pages scrolls et changent sur ma tablette et mon ordinateur.
CSS
Le CSS a souvent fait perdre des cheveux aux développeurs. Heureusement, Sass permet de l’écrire de manière plus agile: utilisation de variables, mixins, nesting… Gulp nous permet de compiler ces fichiers en CSS. Mais pas seulement… il ajoute également les préfixes pour que chaque fonctionnalité soit supportée par tous les navigateurs.
JavaScript
Il y a malheureusement une grande différence entre les dernières fonctionnalités JavaScript et celles supportées par les navigateurs. Pour faire le lien, il y a Babel: l’équivalent de Sass pour JavaScript. Il nous permet d’être plus confortable et d’utiliser les nouveautés avant l’heure sans problème de comptabilité. Pour une meilleure structure, nous séparons nos fichiers, qui sont ensuite fusionnés en un unique main.js.
Icons
Il est toujours délicat d’utiliser les icones et les images des graphistes sans perdre en performance. Pour cela, nous avons mis en plus une autre tâche qui s’occupe de compresser le tout garantissant aucune perte de qualité. Les SVG sont transformés en font pour une utilisation plus agréable et optimisée.
Environnements
Vous connaissez globalement les différentes tâches principales que nous utilisons pour développer le site. Mais lorsqu’un site est terminé, il ne faut justement pas baisser sa garde; des travaux de tests et de rapidités restent à faire.
Pour cela, nous relançons les tâches précédemment citées en mode “production”. Ainsi, chaque fichier sera passé au crible fin pour le minimiser: tout réunir dans un fichier, supprimer les espaces et autres bouts de codes inutile, mettre le tout sur une ligne. Et pour avoir un suivi, un petit rapport nous est rendu à la fin du script pour constater l’espace gagné.
Conclusion
Nous avons une philosophie d’amélioration continue: se tenir à jour et optimiser nos environnements de travail. Nous continuons à nous renseigner quotidiennement comment améliorer nos méthodes. À mesure que nous apprenons de nouvelles technologies, nous adaptons nos taskers en conséquence, pour notre confort et la qualité de notre code.
Continuez votre lecture
Mathieu Zwygart
7 janvier 2025Évaluation heuristique : détecter les problèmes d’utilisation et d’expérience
L’évaluation heuristique est une méthode d’analyse de l’expérience utilisateur (UX) permettant d’identifier les problèmes d’utilisabilité d’une interface. Elle repose sur l’expertise d’évaluateurs qui analysent un...
Vincent Parisod
18 décembre 2024LaChatterie.ch : une résidence d’exception pour le bien-être des chats
Collaboration avec La Chatterie du Point du Jour : une identité visuelle ludique et un site web intuitif pour refléter l’ambiance apaisante des lieux et simplifier la réservation.
Vincent Parisod
5 décembre 2024YMECA, au service de la formation et de l’innovation dans les métiers techniques de la mobilité
Une interface claire et intuitive au service de la mission d’YMECA : former les talents de demain dans les métiers de la mécanique.