Erreurs vs warnings
- Erreur : la compilation s'arrête (CSS non généré).
- Warning : la compilation continue, mais quelque chose est suspect.
Une erreur doit être corrigée immédiatement. Un warning doit au moins être compris.
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.
@debug, @warn et @error.Un bon développeur ne fait pas moins d'erreurs : il les corrige plus vite.
Une erreur doit être corrigée immédiatement. Un warning doit au moins être compris.
Un message Sass contient généralement :
Exemple d'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.
@debug pour inspecter une valeur
@debug affiche une information dans la console lors de la compilation.
$colors: (
primary: #7aa7ff,
danger: #ef4444
);
@debug map-get($colors, primary);
Résultat en console :
scss/main.scss:6 DEBUG: #7aa7ff
@warn pour signaler un usage incorrect
@warn est idéal pour prévenir sans bloquer la compilation.
@function color($key) {
@if map-has-key($colors, $key) {
@return map-get($colors, $key);
} @else {
@warn "Couleur inconnue : #{$key}";
@return black;
}
}
@error
Quand une erreur doit absolument empêcher la compilation, on utilise @error.
@mixin mq($key) {
@if map-has-key($breakpoints, $key) {
@media (min-width: map-get($breakpoints, $key)) {
@content;
}
} @else {
@error "Breakpoint inconnu : #{$key}";
}
}
@error est parfait pour sécuriser l'API de tes mixins et fonctions.
Avec les sourcemaps activées, les DevTools indiquent le fichier SCSS d'origine.
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.
Une clé mal nommée ou manquante est une source classique de bugs.
$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é.
@debug.Ne corrige jamais "au hasard". Isole le problème, comprends-le, puis corrige.
@warn pour guider les usages incorrects.@error pour sécuriser les API internes.@debug avant la production.Un bon message d'erreur vaut mieux qu'un CSS silencieusement faux.
Les warnings sont souvent des bugs futurs.
Tu te prives d'un outil majeur pour comprendre ton CSS.
Cela crée de la dette technique et rend les bugs plus difficiles à corriger.
@debug, @warn et @error sont des outils essentiels.