📚 Cours SCSS (Sass) 📍 Chapitre 20 / 21

Débogage SCSS

Lorsque ton SCSS devient plus riche (maps, fonctions, mixins, boucles), les erreurs deviennent inévitables. Savoir lire les messages de compilation, utiliser les bons outils et adopter les bons réflexes est essentiel pour travailler efficacement. Ce chapitre t'apprend à déboguer ton SCSS comme un développeur professionnel.

Objectifs du chapitre

  • Comprendre les erreurs et warnings Sass.
  • Utiliser @debug, @warn et @error.
  • Exploiter les sourcemaps pour localiser les problèmes.
  • Identifier les erreurs fréquentes liées aux maps, mixins et fonctions.
  • Adopter une méthode de débogage efficace.
À retenir

Un bon développeur ne fait pas moins d'erreurs : il les corrige plus vite.

Explications théoriques détaillées

Erreurs vs warnings

  • Erreur : la compilation s'arrête (CSS non généré).
  • Warning : la compilation continue, mais quelque chose est suspect.
Important

Une erreur doit être corrigée immédiatement. Un warning doit au moins être compris.

Lire un message d'erreur Sass

Un message Sass contient généralement :

  • le type d'erreur
  • le fichier concerné
  • la ligne et la colonne

Exemple d'erreur :

ERREUR
Error: Undefined variable.
  ╷
5 │   color: $primay;
  │          ^^^^^^^
  ╵
scss/components/_button.scss 5:10

Ici, l'erreur est évidente : faute de frappe dans le nom de la variable.

Exemples simples

Utiliser @debug pour inspecter une valeur

@debug affiche une information dans la console lors de la compilation.

SCSS
$colors: (
  primary: #7aa7ff,
  danger: #ef4444
);

@debug map-get($colors, primary);

Résultat en console :

CONSOLE
scss/main.scss:6 DEBUG: #7aa7ff

Utiliser @warn pour signaler un usage incorrect

@warn est idéal pour prévenir sans bloquer la compilation.

SCSS
@function color($key) {
  @if map-has-key($colors, $key) {
    @return map-get($colors, $key);
  } @else {
    @warn "Couleur inconnue : #{$key}";
    @return black;
  }
}

Exemples concrets et professionnels

Cas pro 1 : bloquer une mauvaise configuration avec @error

Quand une erreur doit absolument empêcher la compilation, on utilise @error.

SCSS
@mixin mq($key) {
  @if map-has-key($breakpoints, $key) {
    @media (min-width: map-get($breakpoints, $key)) {
      @content;
    }
  } @else {
    @error "Breakpoint inconnu : #{$key}";
  }
}
À retenir

@error est parfait pour sécuriser l'API de tes mixins et fonctions.

Cas pro 2 : sourcemaps pour retrouver le SCSS source

Avec les sourcemaps activées, les DevTools indiquent le fichier SCSS d'origine.

BASH
sass --watch scss/main.scss:css/style.css --source-map

Dans le navigateur, un clic sur une règle CSS te renvoie vers le fichier SCSS exact.

Cas pro 3 : erreur fréquente avec les maps imbriquées

Une clé mal nommée ou manquante est une source classique de bugs.

SCSS
$tokens: (
  colors: (
    primary: #7aa7ff
  )
);

@function token($group, $key) {
  @if map-has-key($tokens, $group) {
    @return map-get(map-get($tokens, $group), $key);
  } @else {
    @error "Groupe inconnu : #{$group}";
  }
}

.button {
  background: token(colors, primay);
}

Ici, la clé primay est incorrecte → erreur explicite au lieu d'un CSS cassé.

Cas pro 4 : déboguer progressivement

  • Commenter temporairement des blocs.
  • Réduire le problème à un cas minimal.
  • Afficher des valeurs avec @debug.
  • Relire le CSS généré si nécessaire.
Conseil terrain

Ne corrige jamais "au hasard". Isole le problème, comprends-le, puis corrige.

Bonnes pratiques

  • Lire attentivement les messages d'erreur Sass.
  • Utiliser @warn pour guider les usages incorrects.
  • Utiliser @error pour sécuriser les API internes.
  • Activer les sourcemaps en développement.
  • Nettoyer les @debug avant la production.
À retenir

Un bon message d'erreur vaut mieux qu'un CSS silencieusement faux.

Erreurs courantes

Erreur 1 : ignorer les warnings

Les warnings sont souvent des bugs futurs.

Erreur 2 : désactiver les sourcemaps en développement

Tu te prives d'un outil majeur pour comprendre ton CSS.

Erreur 3 : empiler des correctifs sans comprendre

Cela crée de la dette technique et rend les bugs plus difficiles à corriger.

Résumé du chapitre

Ce que vous avez appris
Le débogage SCSS repose sur la lecture des erreurs et warnings.
@debug, @warn et @error sont des outils essentiels.
Les sourcemaps permettent de relier CSS et SCSS.
Une méthode de débogage claire fait gagner beaucoup de temps.

Prochain chapitre : Mini-projet final SCSS

Dans le prochain et dernier chapitre, nous réaliserons un mini-projet final SCSS, mettant en pratique l'ensemble des notions vues depuis le début du cours.

  • Création d'un design system complet avec SCSS
  • Architecture 7-1 professionnelle
  • Utilisation de variables, mixins, fonctions et maps
  • Responsive design et optimisation des performances