Skip to content
experience

Le build du thème et le bourguignon avaient le même temps de cuisson (j'ai fini par réparer les deux)

Julien Lefèvre@julien_wp

August 25, 2026 · 3 min read

Petit retour d'expérience un peu idiot mais vrai.

Depuis 2015 je fais des sites WordPress et WooCommerce pour des boulangeries, des vignerons du coin et des gens pressés. Je travaille de chez moi, à Nantes, et mon bureau est à trois mètres de la cuisine. Donc depuis des années j'ai une habitude : je lance le build du thème, et je vais touiller quelque chose.

Le problème, c'est que mon build est devenu de plus en plus long. Un vieux thème custom pour un caviste, avec Webpack 4, node-sass, des images optimisées à chaque build, et un watch qui recompilait tout pour un point-virgule. 3 minutes 40 pour un build complet. Ça, c'est le temps de faire revenir des oignons. Pas mal. Mais en dev c'était pire : 25 à 40 secondes à chaque sauvegarde. Trop court pour cuisiner, trop long pour ne pas aller sur les réseaux.

Un dimanche j'ai fait un bœuf bourguignon (3 heures, ma grand-mère disait 4) et pendant qu'il mijotait j'ai enfin pris le temps de regarder pourquoi mon build était si lent. Voilà ce que j'ai changé, au cas où ça serve à quelqu'un avec un vieux thème :

  • node-sass vers sass (Dart Sass). node-sass est déprécié de toute façon, et en plus il cassait à chaque mise à jour de Node. Le passage s'est fait presque sans douleur, à part quelques / pour les divisions qu'il a fallu remplacer par math.div() (avec @use "sass:math" en haut du fichier).
  • Les images sorties du build. Optimiser les images à chaque build, c'était absurde. Maintenant je les optimise une fois, à l'upload dans WordPress, et le build ne les touche plus. Une minute et demie de gagnée.
  • Webpack 4 vers Vite pour le JS et le CSS du thème. En dev, le rechargement est passé de 30 secondes à quasi instantané. J'ai dû écrire un petit bout de PHP pour charger les assets depuis le serveur de Vite en dev et depuis le manifest en prod, rien de méchant.

Résultat : build complet en 22 secondes au lieu de 3 min 40. Le watch, on ne le voit plus.

Et maintenant le vrai problème : je n'ai plus le temps de cuisiner pendant les builds. J'ai gagné en productivité et perdu en gastronomie. Ce midi c'était des pâtes au beurre. Ma compagne m'a demandé si j'allais bien.

Pour ceux qui veulent quand même cuisiner en codant, ma règle maintenant c'est l'inverse : je lance un plat long (un pot-au-feu, un bourguignon, une blanquette) et je code pendant qu'il cuit. La cocotte devient le minuteur. Quand ça sent bon, c'est l'heure de commit.

Le bourguignon était excellent, au passage. Muscadet dans la sauce, ne le dites pas aux Bourguignons.

Get the best of #compiles-and-simmers weekly

One email each Monday with the most useful posts. No spam; unsubscribe in one click.

Comments

7

Sign in to join the conversation.

Sign in to comment
Guillaume Mercier@guillaume_rale#7 in Compiles and Simmers
Du Muscadet dans un bourguignon. Je râle, évidemment. Mais 22 secondes au lieu de 3 min 40, chapeau. Mon build Symfony prend 2 minutes et moi je n'ai même pas droit à un ragoût, je suis en open space.
1 net votes
Julien Lefèvre@julien_wp#3 in Compiles and Simmers
Tu râles encore ? 😄 Passe à Vite, même avec Symfony ça se fait bien. Et viens à Nantes, je te fais un bourguignon au Muscadet, tu vas changer d'avis.
0 net votes
Nadia Benali@nullbyte_nadia#7 in Compiles and Simmers
« Quand ça sent bon, c'est l'heure de commit » je vais l'imprimer. Par contre ton petit bout de PHP qui charge depuis le serveur Vite en dev, vérifie bien qu'il ne peut jamais s'activer en prod. J'ai déjà vu un site qui essayait de charger localhost:5173 chez tous ses visiteurs 🙃
0 net votes
Julien Lefèvre@julien_wp#3 in Compiles and Simmers
Bien vu. C'est conditionné à WP_ENVIRONMENT_TYPE === 'local' et à l'absence du manifest. Mais je revérifie ce soir, merci Nadia.
0 net votes
Marcus Johnson@marcus_oncall#4 in Compiles and Simmers
Didn't understand half the words but understood "3:40 to 22 seconds" and "boeuf bourguignon" and that is all I need from a post. Compiles and simmers indeed.
1 net votes
Olivier Gagnon@ogagnon#7 in Compiles and Simmers
Tabarnak, 3 min 40 pour un thème WordPress. Bravo pour le ménage. Ici une bonne soupe aux pois pendant un export Godot, ça c'est de la productivité.
1 net votes
Marc-André Bélanger@mabelanger#7 in Compiles and Simmers
Merci pour l'astuce des images optimisées à l'upload. J'avais exactement le même problème sur un vieux site. Deux minutes de gagnées.
1 net votes