Appearance
🐛 Debugging
Console Warnings en DEV
Les warnings i18n n'apparaissent qu'en mode développement :
typescript
if (import.meta.env.DEV) {
console.warn("Message de debug");
}Lancer en DEV
bash
pnpm devWarnings possibles :
Clé de traduction invalide: ...Locale invalide: ...Fichier de traduction introuvable: ...Traduction introuvable: ...
Vérifier les Traductions
Tester une Clé
astro
---
const test = t("sections:hero.showProfile", {
lng: "fr",
name: "Simon"
});
console.log(test);
// → "Voir le profil de Simon sur" (si OK)
// → "sections:hero.showProfile" (si erreur)
---Valider les Fichiers JSON
bash
# Vérifier la syntaxe
cat public/locales/fr/sections.json | jq .
# Afficher le contenu formaté
jq . public/locales/fr/sections.jsonBuild Errors
Erreur : Module non trouvé
Cannot find module '@cvType'Solution : Vérifier tsconfig.json → paths → Le chemin existe ?
Erreur : Type invalide
Type 'string' is not assignable to type 'Locale'Solution : Utiliser le type correct :
typescript
const locale: Locale = "fr"; // ✅
const locale: string = "fr"; // ❌Type Checking
bash
pnpm astro checkRésultat attendu :
Result (47 files):
- 0 errors
- 0 warnings
- 0 hintsDebugging Thème
Vérifier le Thème Actuel
javascript
// Console navigateur
localStorage.getItem("theme")
// → "light" | "dark" | "system" | null
document.documentElement.className
// → "" (light) | "dark" (dark)Forcer un Thème
javascript
import { updateTheme } from "@/utils/theme";
updateTheme("dark");Tester prefers-color-scheme
javascript
window.matchMedia("(prefers-color-scheme: dark)").matches
// → true (OS en dark) | false (OS en light)Debugging Locale
Vérifier la Langue
javascript
localStorage.getItem("locale")
// → "fr" | "en" | nullForcer une Langue
javascript
import { switchLocale } from "@/utils/locale";
switchLocale("en");
// → Redirige vers /en/Debugging HotKeyPad
Vérifier les Commandes
javascript
// Console navigateur
const hotkeypadData = document.querySelector("#hotkeypad")?.getAttribute("data-info");
console.log(JSON.parse(hotkeypadData));
// → Array des commandesTester un Raccourci
- Appuyer sur
Cmd+K→ Palette s'ouvre ? - Appuyer sur
Ctrl+P→ Impression ?
Performance
Lighthouse
- Chrome DevTools → Lighthouse
- Mode: Desktop ou Mobile
- Categories: Performance, Accessibility, Best Practices, SEO
- Generate report
Cibles :
- Performance: > 90
- Accessibility: 100
- Best Practices: 100
- SEO: 100
Web Vitals
- LCP (Largest Contentful Paint): < 2.5s
- FID (First Input Delay): < 100ms
- CLS (Cumulative Layout Shift): < 0.1
Debugging CSS
Inspecter les Variables
javascript
// Console navigateur
getComputedStyle(document.documentElement).getPropertyValue("--color-fill")
// → "255, 255, 255" (light) | "17, 24, 39" (dark)Tester une Classe Tailwind
javascript
// Console
document.querySelector(".bg-skin-fill").style.backgroundColor
// → "rgb(255, 255, 255)"Erreurs Fréquentes
1. Cache du Navigateur
Problème : Les changements ne s'affichent pas.
Solution : Recharger avec cache clear (Cmd+Shift+R).
2. Traduction Manquante
Problème : Affiche la clé au lieu du texte.
Solution :
- Vérifier que la clé existe dans le JSON
- Vérifier l'orthographe de la clé
- Vérifier le namespace (
common:,sections:, etc.)
3. Props Undefined
Problème : Cannot read property 'name' of undefined
Solution :
- Vérifier que les props sont bien passées
- Vérifier les types TypeScript
- Ajouter des vérifications optionnelles :
basics?.name
4. Alpine.js ne Fonctionne Pas
Problème : x-data ne fait rien.
Solution :
- Vérifier que Alpine.js est chargé
- Utiliser
x-cloakpour masquer avant hydratation - Vérifier la console pour erreurs JavaScript